Upload
ricardo-castro
View
89
Download
0
Embed Size (px)
Citation preview
5/28/2018 Modelagem de Banco de Dados
1/91
Disciplina:MODELAGEM DEBANCO DE DADOS
Introduo a Banco de Dados
1. Introduo
Um Sistema Gerenciador de Banco de Dados (SGBD) constitudo por um conjunto de dados associados a um conjunto deprogramas para acesso a esses dados.
O principal objetivo de um SGBD proporcionar umambiente tanto convenientequanto a eficientepara a recuperao
e armazenamento das informaes do banco de dados.
Sistemas de banco de dados so projetados para gerirgrandes volumes de informaes. O gerenciamento de informaesimplica a definio das estruturas de armazenamento dasinformaes e da definio dos mecanismos para a manipulaodessas informaes. Tambm um sistema de banco de dados deve
garantir a segurana das informaes armazenadas contraeventuais problemas com o sistema, alm de impedir tentativas deacesso no autorizadas. Tambm se os dados so compartilhadospor diversos usurios o sistema deve evitar a ocorrncia deresultados anmalos.
2. Por que Sistemas de Banco de Dados
5/28/2018 Modelagem de Banco de Dados
2/91
Um Sistema de processamento de arquivos convencionalonde, registros permanentes so armazenados em vrios arquivose diversos programas de aplicao so escritos para extrair egravar registros nos arquivos apropriados, podem serapropriadamente gerenciados pelos sistemas operacionaisexistentes. Mas, estes sistemas apresentam numerosasdesvantagens:
Inconsistncia e Redundncia de Dados: Como arquivos eprogramas normalmente so criados e mantidos pordiferentes programadores, em geral comum que osarquivos possuam formatos diferentes e os programasestejam escritos em diferentes linguagens deprogramao. Alm disso, a mesma informao pode estarrepetida em mais de um arquivo.
Dificuldade de Acesso aos Dados: Normalmente em umsistema de processamento de arquivos comum, quandoexiste uma necessidade de uma relao de empregados,por exemplo, segundo uma determinada condio, se estasituao no tiver sido prevista inicialmente no sistema, necessrio que um novo programa seja desenvolvido e quegere esta lista solicitada. O fato que este ambiente noest preparado para atender as necessidades de
recuperao de informaes de modo eficiente. Isolamento dos Dados: Como os dados esto dispersos
em vrios arquivos, e estes arquivos podem apresentardiferentes formatos, difcil escrever novas aplicaespara a recuperao apropriada destes dados.
Problemas com Integridade: Os valores dos dadosatribudos e armazenados em um banco de dados devem
5/28/2018 Modelagem de Banco de Dados
3/91
satisfazer certas restries para manuteno daconsistncia. O problema aumenta quando as restriesatingem diversos itens de dados em diferentes arquivos.
Problemas de atomicidade: Um sistema computacionalest sujeito a falhas. E imprescindvel garantir que, umavez detectada uma falha, os dados sejam salvos em seultimo estado consistente, anterior a ela. Por exemplo,uma operao de transferncia bancria entre contascorrentes, deve ser uma operao atmica, ou seja, deve
ocorrer por completo, ou no ocorrer. Anomalias no acesso concorrente: Muitos sistemas
permitem atualizaes simultneas dos dados paraaumento do desempenho do sistema como um todo e paramelhores tempos de resposta. Este tipo de interao poderesultar em inconsistncia de dados. Por exemplo, doissaques simultneos a uma mesma conta corrente.
Problemas de Segurana: Nem todos os usurios debanco de dados esto autorizados ao acesso a todos osdados. Em um sistema bancrio, por exemplo, osfuncionrios do departamento de pessoal no deveriamter acesso a informaes dos clientes do banco, s apenasao conjunto de pessoas ao qual o seu departamento lhe dizrespeito.
Estas e outras dificuldades provocaram o desenvolvimentosdos SGBDs. Iniciaremos o estudo dos sistemas de bancos dedados, mostrando, para isso, conceitos e algoritmos que foramdesenvolvidos para a efetiva manipulao dos mesmos.
5/28/2018 Modelagem de Banco de Dados
4/91
Linguagens de Banco de Dados e Tipos de Usurios
1.Linguagens de Banco de DadosUm sistema de banco de dados proporciona dois tipos delinguagens: uma especfica para os esquemas do banco de dadose outra para expressar consultas e atualizaes.
1.2 Linguagens de Definio de Dados
Um esquema de banco de dados especificado por um conjuntode definies expressas por uma linguagem especial chamadalinguagem de definio de dados (data-definition language -DDL). O resultado da compilao dos parmetros DDLs
armazenado em um conjunto de tabelas que constituem umarquivo especial chamado dicionrio de dados ou diretrio dedados.
Um dicionrio de dados um arquivo de metadados, isto ,dados a respeito de dados. A estrutura de memria e o mtodode acesso usados pelo banco de dados so especificados por um
conjunto de definies em um tipo especial de DDL chamado delinguagem de definio e armazenamento de dados (datastorage and definition language).
1.3 Linguagens Manipulao de Dados
5/28/2018 Modelagem de Banco de Dados
5/91
Os nveis de abstrao que foram discutidos anteriormente nose aplicam apenas definio ou a strutura dos dados, mastambm sua manipulao. Por manipulao de dados, entende-se:
A recuperao das informaes armazenadas no bancode dados.
Insero de novas informaes no banco de dados.
A remoo de informaes do banco de dados.
A modificao das informaes do banco de dados.A linguagem de manipulao de dados (DML) a linguagem queviabiliza o acesso ou a manipulao dos dados de formacompatvel ao modelo de dados apropriado. So basicamentedois tipos:
DMLs procedurais exigem que o usurio especifiquequaisdados so necessrios, e comoobt-los.
DMLs no-proceduraisexige que o usurio especifiquequais dados so necessrios sem especificar comoobt-los.
Uma consulta uma solicitao para a recuperao deinformaes. A parte de uma DML que responsvel pelarecuperao de informaes chamada linguagem de consultas(query language).
1.4 Gerenciamento de Transaes
Muitas vezes diversas operaes em um banco de dadosconstituem de uma nica unidade lgica de trabalho. Como ocaso da transferncia de crditos entre duas contas-correntes.A transferncia deve acontecer como um todo ou nada deve ser
5/28/2018 Modelagem de Banco de Dados
6/91
feito. Essa caracterstica de tudo ou nada, chamado deatomicidade. Alm disso, necessrio que a transferncia defundos preserve a consistncia do banco de dados. Essaexigncia chamada de consistncia. Depois da execuo comsucesso da operao de transferncia, os novos valores devempersistir, a despeito da possibilidade de falhas no sistema. Essapersistncia chamada de durabilidade.
Uma transao uma coleo de operaes que desempenha
uma funo lgica nica dentro de uma aplicao do sistema debanco de dados. Cada transao uma unidade de atomicidadee consistncia. Assim, exige-se que as transaes no violemnenhuma regra de consistncia do banco de dados. deresponsabilidade do programador definir as diversastransaes tais que cada uma preserve a consistncia do bancode dados.
de responsabilidade do sistema de banco de dados asseguraras propriedades de atomicidade e durabilidade nogerenciamento das transaes. de sua responsabilidadetambm detectar falhas e recuperar o banco de dadosgarantindo o retorno de seu ltimo estado consistente. Outraresponsabilidade importante diz respeito ao controle deconcorrncia, que consiste de controlar a interao entre
transaes concorrentes de modo a garantir a consistncia dobanco de dados.
1.5 Administrao de Memria
5/28/2018 Modelagem de Banco de Dados
7/91
Os bancos de dados, normalmente, ocupam um grande volumede memria. Este tamanho muitas vezes pode chegar no s agigabytes, mas tambm a terabytes. Um gerenciador dememria um mdulo de programas para interface entre oarmazenamento de dados em um nvel baixo e consultas eprogramas submetidos ao sistema. O gerenciador de memria responsvel pelo armazenamento, recuperao e atualizao dedados no banco de dados.
1.6 Administrador de Banco de Dados
Uma das grandes motivaes de uso de SGBDs o controlecentralizado tanto de dados quanto dos programas de acesso aesses dados. A pessoa que centraliza esse controle do sistema chamada de administrador de banco de dados (DBA). Dentreas suas funes, destacam-se:
Definio do esquema. O DBA cria o esquema do bancode dados original escrevendo um conjunto de definiesque so transformadas pelo compilador DDL em umconjunto de tabelas armazenadas de modo permanente nodicionrio de dados.
Definio da estrutura de dados e mtodos de acesso.O DBA cria estruturas de dados e mtodos de acesso
apropriados escrevendo um conjunto e definies, asquais so traduzidas pelo compilador de armazenamentode dados e pelo compilador de linguagem de definio dedados.
Esquema e modificaes na organizao fsica. Osprogramadores realizam relativamente poucas alteraesno esquema do banco de dados ou na descrio daorganizao fsica de armazenamento.
5/28/2018 Modelagem de Banco de Dados
8/91
Fornecer autorizao de acesso ao sistema. Ofornecimento de diferentes tipos de autorizao noacesso aos dados permite que o administrador de dadosregule o acesso dos diversos usurios s diferentespartes do sistema.
Especificao de regras de integridade. Os valores dosdados armazenados no banco de dados devem satisfazercertas restries para manuteno de sua integridade.
1.7 Usurios de Banco de Dados
H quatro tipos bsicos de usurios de sistemas de banco dedados, cuja diferena refere-se a suas expectativas deinterao com o sistema.
Programadores de aplicaes. So profissionais emcomputao que interagem com o sistema por meio daschamadas DML, as quais so envolvidas por programasescritos na linguagem hospedeira. Estes programas socomumente referidos como programas de aplicao.
Usurios sofisticados. Interagem com o sistema semescrever programas. Formulam suas solicitaes ao bancode dados por meio de linguagens de consultas. Cada umadessas solicitaes submetida ao processador deconsultas.
Usurios especialistas. So usurios sofisticados queescrevem aplicaes especializadas de bancos de dadosque no podem ser classificadas como aplicaestradicionais em processamento de dados.
5/28/2018 Modelagem de Banco de Dados
9/91
Usurios navegantes. So os usurios comuns queinteragem com o sistema chamando um dos programasaplicativos permanentes j escritos, como por exemplo,um usurio que pede a transferncia de uma conta paraoutra.
5/28/2018 Modelagem de Banco de Dados
10/91
Consideraes Bsicas, Abstrao e Modelos deDados
Bancos de Dados e Sistemas de Banco de Dados tm setornado um componente essencial todos os dias da vida moderna.Aplicaes de banco de dados tradicionais dizem respeito asistemas bancrios, sistemas de reservas areas, sistemas decontrole de estoque.
Com o avano da tecnologia, novos tipos de bancos de dadosforam desenvolvidos, com aplicaes e uso especficos. Bancos deDados Multimdiapodem, por exemplo, armazenar figuras, vdeo-clips e mensagens de sons. Bancos de Dados Geogrficospodemarmazenar e analisar mapas, dados climticos e imagens desatlite. DataWarehouses e Processamentos Analtico On-line(OLAP) so sistemas usados em muitas empresas para extrair e
analisar informaes teis de sistemas de banco de dados muitograndes para a tomada de decises.
Tecnologias de Tempo Real e de Banco de Dados Ativosso usados no controle industrial e em processo de manufatura.Tcnicas de busca em bancos de dados, com aplicaes na Web,tm melhorado a eficincia dos mesmos. No entanto, temos queentender o bsico das aplicaes de banco de dados tradicionais.
Um banco de dados pode ser considerado como uma coleode dados relacionados. Por dado entendem-se fatos conhecidosque podem ser armazenados e que possuem um significadoimplcito. Um banco de dados possui as seguintes propriedadesimplcitas:
5/28/2018 Modelagem de Banco de Dados
11/91
Representa alguns aspectos do mundo real, muitasvezes chamado de mini-mundo ou universo dodiscurso.
uma coleo de dados logicamente coerente comalguns significados inerentes aos mesmos.
projetado, construdo e povoado com dados paraum propsito especfico.
Um banco de dados pode ser de qualquer tamanho e de
complexidade variada. Pode ser gerado e mantido manualmente oupode ser computadorizado. Um Sistema de Gerenciamento deBanco de Dados uma coleo de programas que permitem queusurios criem e mantenham um banco de dados.
Um SGBD tambm um sistema de software de propsitogeral que facilita o processo de definio, construo emanipulao de banco de dados para vrias aplicaes. A definio
de um banco de dados envolve especificao de tipos de dados,estruturas e restries para que os dados possam serarmazenados no banco de dados.
A construo do banco de dados o processo dearmazenamento de dados em algum armazenamento mdio que controlado pelo SGBD. A manipulao do banco de dados inclui taisfunes como consulta a banco de dados para recuperar dados
especficos e a atualizao destes dados. Chamaremos de Sistemade Banco de Dados, o banco de dados e o SGBD, juntos. A Figura 1mostra a estrutura de um Sistema de Banco de Dados.
5/28/2018 Modelagem de Banco de Dados
12/91
Figura 1 Um Ambiente de Sistema de Banco de Dados
3. Abstrao de Dados
Um SGBD, como j dissemos, uma coleo arquivos eprogramas inter-relacionados que permitem ao usurio o acessopara consultas e alteraes a esses dados. Um dos grandesbenefcios de um sistema de banco de dados permitir aosusurios, uma viso abstratados dados.
5/28/2018 Modelagem de Banco de Dados
13/91
Um sistema precisa ser eficiente na recuperao deinformaes. Esta eficincia muitas vezes est relacionada com acomplexidade internas das estruturas de representao destesdados. Esta complexidade precisa ser transparente para osusurios, ou seja, atravs dos nveis de abstrao, os SGBDsomitem a complexidade de armazenamento e manuteno dosdados que esto sendo manipulados, de modo a facilitar ainterao dos usurios com o sistema.
Nvel Fsico: o nvel de abstrao mais baixo e descrevecomoos dados esto de fato armazenados.
Nvel Lgico: este o nvel de abstrao mdio, quedescreve quais dados esto armazenados no banco dedados e quais so os inter-relacionamentos entre eles. Onvel lgico normalmente usado pelos administradores
que precisam decidir quais as informaes que precisamestar no banco de dados.
Nvel de Viso: Este nvel de abstrao mais alto quedescreve apenas parte do banco de dados. Muitosusurios dos bancos de dados nem precisam conhecertodas as informaes armazenadas. Para isso, nveis deviso so definidos de modo que as interaes sejamsimplificadas.
A figura abaixo mostra o inter-relacionamento entre estestrs nveis de abstrao:
5/28/2018 Modelagem de Banco de Dados
14/91
Figura 2 Trs nveis de Abstrao de dados
Podemos fazer uma analogia dos nveis de abstrao comtipos de dados em linguagens de programao. Por exemplo, dada aestrutura abaixo:
Typecliente = recordNome_cliente : string;
Seguro_social : string;Rua_cliente : string;Cidade_cliente : string;
end;
No nvel fsico, um registro de cliente pode ser escrito comoum bloco consecutivo de memria. No nvel lgico, cada registro descrito por um tipo definido, como ilustrado no segmento de
5/28/2018 Modelagem de Banco de Dados
15/91
cdigo acima. Normalmente os programadores e administradoresdo banco de dados trabalham neste nvel de abstrao. No nvel deviso, os usurios vem apenas um conjunto de programas deaplicao que escondem os detalhes dos tipos de dados.
3.1 Instncias e Esquemas
Um banco de dados muda ao longo do tempo por meio dasinformaes que nele so inseridas ou excludas. O conjunto deinformaes contidas em determinado banco de dados em um dadomomento chamado instnciado banco de dados. O projeto geraldo banco de dados chamado de esquema.
Fazendo uma anlise comparativa com o exemplo dado declientes, acima, uma varivel poderia ser declarada como:
Varcliente1 : cliente;
A definio de tipo em uma linguagem de programaocorresponde ao esquemado banco de dados. O valor em um dadoinstante de uma varivel de um determinado tipo, corresponde auma instnciado esquema do banco de dados.
Os sistemas de banco de dados apresentam diversosesquemas, referentes aos nveis de abstrao que foramdiscutidos. Em geral os sistemas de banco de dados so suporte aum esquema fsico, um esquema lgico e vrios subesquemas.
5/28/2018 Modelagem de Banco de Dados
16/91
A capacidade de modificar a definio dos esquemas emdeterminado nvel, sem afetar o esquema do nvel superior, chamado independncia de dados. Existem dois nveis deindependncia de dados:
a. Independncia fsica de dadosb. Independncia lgica de dados
4. Modelos de Dados
Um modelo de dados um conjunto de ferramentasconceituais utilizadas para a descrio de dados, relacionamentoentre esses dados, semntica de dados e regras de consistncia.Os modelos so classificados em trs diferentes grupos: modeloslgicos com base em objetos, modelos lgicos com base em
registrose modelos fsicos.
4.1 Modelos Lgicos com base em Objetos
Os modelos lgicos com base em objetos so usados nadescrio de dados no nvel lgico e de vises. Existem vriosmodelos desta categoria, tais como:
Modelo Entidade-Relacionamento
Modelo Orientado a Objetos
Modelo Semntico de Dados
Modelo Funcional de Dados
5/28/2018 Modelagem de Banco de Dados
17/91
4.1.1 Modelo Entidade-Relacionamento
O modelo de dados entidade-relacionamento (E-R) tem comobase a percepo do mundo real como um conjunto de objetosbsicos, chamados de entidades, e do relacionamento entre eles.Uma entidade uma coisa ou um objeto do mundo real, que podeser identificado por outros objetos. As entidades so descritas nobanco de dados por meio de seus atributos. Um relacionamento uma associao entre entidades. Alm das entidades e dosrelacionamentos, o modelo E-R representa certas regras as quaiso contedo do banco de dados precisa respeitar.
4.1.2 Modelo Orientado a Objetos
O modelo orientado a objetos, assim como o E-R, tem porbase um conjunto de objetos. Um objeto contm valoresarmazenados em variveis instncias dentro do objeto. Um objetotambm contm conjuntos de cdigos que operam este objeto.Estes conjuntos de cdigos so chamados de mtodos. Os objetosque contm os mesmos tipos de valores e os mesmos mtodos soagrupados em classes. Onde uma classe pode ser vista como umadefinio de tipo para objetos.
4.2 Modelos Lgicos Baseados em Registros
Modelos lgicos baseados em registros so usados paradescrever os dados no nvel lgico e de viso. usado tanto paraespecificar a estrutura lgica do banco de dados quanto para
5/28/2018 Modelagem de Banco de Dados
18/91
implementar uma descrio de alto nvel. Dos trs modelosapresentados, o modelo relacional o que mais tem se destacadonos ltimos anos. O modelo hierrquico e de rede ainda usado emum grande nmero de banco de dados antigos.
4.2.1 Modelo Relacional
O modelo relacional usa um conjunto de tabelas para
representar tanto os dados como a relao entre eles. Cada tabelapossui mltiplas colunas e cada uma possui um nico nome.
4.2.2 Modelo de Rede
O modelo de rede representa os dados por um conjunto deregistros e as relaes entre esses registros so representadas
por links, as quais podem ser vistas pelos ponteiros. Os registrosso organizados no banco de dados por um conjunto arbitrrio degrficos.
4.2.3 Modelo Hierrquico
O modelo hierrquico similar ao modelo de rede pois osdados e suas relaes so representados tambm por registros elinks. A diferena que no modelo hierrquico os registros estoorganizados em rvores ao invs de grficos arbitrrios.
4.3 Modelos Fsicos de Dados
5/28/2018 Modelagem de Banco de Dados
19/91
Os modelos fsicos de dados so usados para descrev-los nonvel mais baixo. H poucos modelos fsicos de dados em uso. Doisdeles so conhecidos: o modelo unificado, e o modelo de partiode memria.
5/28/2018 Modelagem de Banco de Dados
20/91
Modelo Entidade-Relacionamento
1.Conceitos bsicosO modelo Entidade-Relacionamento (E-R) tem por base apercepo de que o mundo real formado por um conjunto deobjetos chamados de entidades e pelo conjunto de
relacionamentos entre esses objetos. Foi desenvolvido parafacilitar o projeto do banco de dados, permitindo aespecificao do esquema da empresa que representa toda aestrutura lgica. O modelo E-R um dos modelos com maiorcapacidade semntica; que se referem a tenativa derepresentar o significado dos dados.
Existem trs noes bsicas empregadas pelo modelo E-R:conjunto de entidades, conjunto de relacionamentos, e osatributos.
1.1. Conjunto de EntidadesUma entidade uma coisa ou um objeto do mundo real que podeser identificada de forma unvoca em relao a todos os outros
objetos. Por exemplo, cada pessoa na empresa uma entidade.Uma entidade tem um conjunto de propriedades, e os valorespara alguns conjuntos dessas propriedades devem ser nicos.Uma entidade pode ser concreta como uma pessoa ou um livro,ou pode ser abstrata como um emprstimo, uma viagem defrias ou um conceito.
5/28/2018 Modelagem de Banco de Dados
21/91
Um conjunto de entidades um conjunto de abrange entidadesde um mesmo tipo que compartilham as mesmas propriedades:
os atributos. As entidades individuais que constituem umconjunto so chamadas de extensesdo conjunto de entidades.
Uma entidade representada por um conjunto de atributos.Atributos so propriedades descritivas de cada membro de umconjunto de entidades.
Formalmente um atributo de um conjunto de entidades umafuno que relaciona o conjunto de entidades a seu domnio. Umatributo, como usado no modelo E-R, pode ser caracterizadopelos seguintes tipos:
Atributos Simples ou compostos. Os atributos simplesso aqueles que no so divididos em partes. Oscompostos podem ser divididos em partes, por exemplo,
nome_cliente, pode ser estruturado em prenome,nome_intermedirio, e sobrenome. Os atributoscompostos ajudam-nos a agrupar atributoscorrelacionados tornando o modelo mais claro.
Atributos monovalorados ou multivalorados. Um exemplode um atributo monovalorado poderia ser o atributonmero_emprstimo, o qual teria associado apenas umnmero de emprstimo. Pode acontecer, no entanto, que
uma determinada instncia possua um conjunto de valorespara uma nica entidade. Por exemplo, o atributonome_dependente, da entidade empregado, pode ter um,nenhum ou vrios dependentes cadastrados.
Atributos nulos. Um atributo nulo quando uma entidadeno apresenta valor para o mesmo. Por exemplo, se umempregado no possui dependentes o valor do atributo
5/28/2018 Modelagem de Banco de Dados
22/91
nome_dependente ser nulo, significando que esteatributo no aplicvel a esta instncia em particular.
Atributo derivado. O valor deste atributo pode serderivado de outros atributos ou entidades a elerelacionados. Por exemplo, a idade de um funcionrio podeser calculada pela data de seu aniversrio.
2.Conjunto de RelacionamentosUm relacionamento uma associao entre uma ou vriasentidades. Um conjunto de relacionamentos um conjuntoformado por relacionamentos de um mesmo tipo.
Considere dois relacionamentos de entidades cliente eemprstimo. O conjunto de relacionamentos devedor denota aassociao entre clientes e emprstimos bancrios contrados
pelo cliente.
A associao entre os conjuntos de entidades referida comouma participao, isto , o conjunto de entidades E1, E2,..., En
participado conjunto de relacionamentos R.
A funo que uma entidade desempenha em um relacionamento chamada papel. Uma vez que os conjuntos de entidades
participantes em um conjunto de relacionamentos sogeralmente distintos, papis so implcitos, e no so em geral,especificados. Mas, so teis quando o relacionamento precisaser esclarecido.
Em conjuntos de relacionamentos recursivos, nomes explcitosde papis muitas vezes so necessrios. Por exemplo, oconjunto de entidades empregado, e o conjunto de
5/28/2018 Modelagem de Banco de Dados
23/91
relacionamentos trabalha_para, que modelado para ordenaros pares da entidade empregado. O primeiro empregado tem
papel de gerente, enquanto que o outro tem o papel deempregado.
Um relacionamento pode ter atributos descritivos. O conjuntode relacionamentos depositante, com o conjunto de entidadesclientee conta, por exemplo, apresenta o atributo data_acesso.
Relacionamento binrio um relacionamento que envolve doisconjuntos de entidades. A maior parte dos conjuntos derelacionamentos modelados em um sistema de banco de dados do tipo binrio. Algumas vezes, no entanto, aparecemrelacionamentos que envolvem mais de dois conjuntos deentidades. Como exemplo, podemos combinar os conjuntos derelacionamentos devedor e agncia_emprstimo formando oconjunto de relacionamentos CEA, entre as entidades Cliente,
Emprstimoe Agncia.
O nmero de entidades que participam de um relacionamentodefine o grau deste relacionamento. Um conjunto derelacionamento binrio tem grau 2, e um ternrio, grau 3.
Conjunto de Entidades ou Atributos?
Muitas vezes aparecem dificuldades no reconhecimento do queseja uma entidade ou um atributo. Por exemplo, uma entidadeempregado com dois atributos: nome_empregado, e telefone. Oatributo telefone pode ser modelado como uma entidade. Sedefinirmos como atributo, isto implica dizer que cadaempregado tem precisamente um nmero de telefone a eleassociado. Caso seja modelado como entidade, reflete que um
5/28/2018 Modelagem de Banco de Dados
24/91
empregado pode ter vrios (ou nenhum) nmeros de telefones aele associado.
J o atributo nome_empregado no poderia nunca ser modeladocomo entidade.
Infelizmente no existe uma resposta simples para sabermosdo que constitui um atributo e o que constitui uma entidade. Asdistines vo depender da estrutura geral que est sendomodelada.
Conjuntos de Entidades ou de Relacionamentos?
Nem sempre fica claro se devemos modelar um objeto como umconjunto de entidades ou de relacionamentos.
Por exemplo, considere o problema do emprstimo bancrio
representado como um relacionamento entre clientes eagncias, com nmero_emprstimo e conta como atributos.Cada emprstimo representado como um relacionamentoentre um clientee uma agncia.
Se todo emprstimo tomado por exatamente um cliente eest associado exatamente umaagncia, podemos resolver oprojeto de modo satisfatrio, representando emprstimocomo
relacionamento. Mas, considere que vrios clientes tomem ummesmo emprstimo em conjunto. Ento, nesse caso, necessrio definir um relacionamento em separado para cadacomponente do emprstimo conjunto. Desta forma, os atributosdescritivos numero_emprstimo e conta precisaro serreplicados para cada um dos relacionamentos. Os problemas quesurgem devido a esta replicao so: (1) os dados soarmazenados diversas vezes, desperdiando espao em
5/28/2018 Modelagem de Banco de Dados
25/91
memria, e (2)as atualizaes deixam potencialmente os dadosem estado inconsistente. Ao descrever emprstimo como uma
entidade, este problema de replicao desaparece.
Relacionamentos n-simos.
Uma outra caracterstica importante que diz respeito arelacionamentos, que sempre possvel recompor um conjuntode relacionamentos no-binrio, por um nmero derelacionamentos binrios distintos. Mas, pode ser necessria acriao de um atributo de identificao para o conjunto deentidades criado para substituir o conjunto de relacionamentos.Alm disso, um conjunto de relacionamentos n-simo mostraclaramente todos os conjuntos de entidades que participam deuma determinada relao. O projeto correspondente usandosomente relacionamentos binrios torna mais difcilestabelecer as restries desta participao.
3.Mapeamento de Restries3.1 CardinalidadeO esquema E-R de uma empresa pode definir certas restriesas quais o contedo do banco de dados deve respeitar.Exemplos de restries so: o mapeamento de cardinalidades ea existncia de dependncias.
O mapeamento de cardinalidades expressa o nmero deentidades s quais outras entidades podem estar associadasatravs de um conjunto de relacionamentos. Para um conjuntode relacionamentos binrio, o mapeamento de cardinalidadessegue as instrues abaixo:
5/28/2018 Modelagem de Banco de Dados
26/91
Um para um. Uma entidade em A est associada nomximo a uma entidade em B, e uma entidade em B estassociada no mximo a uma entidade em A.
Um para muitos. Uma entidade em A est associada a
vrias entidades em B. Uma entidade em B deve estarassociada a uma nica entidade em A.
Um para um.
Muitos para um. Uma entidade em A est associada a nomximo uma entidade em B. Uma entidade em B,entretanto, pode estar associada a um nmero qualquerde entidades em A.
Muitos para muitos. Uma entidade em A est associada aqualquer nmero de entidades em B e uma entidade em Best associada a um nmero qualquer de entidades em A.
5/28/2018 Modelagem de Banco de Dados
27/91
Figura 2 Mpeamento de Cardinalidade.Muitos para Muitos.
O mapeamento de cardinalidade para um conjunto derelacionamentos em particular obviamente dependente dassituaes reais que esto sendo modeladas.
O rateio de cardinalidades de um relacionamento podeafetar a colocao dos atributos nos relacionamentos.Conjuntos de relacionamentos um para um, ou um paramuitos devem associar os atributos a uma das entidades
participantes. Considere o caso das entidades cliente econta, e o relacionamento depositante. O atributo data-acessodever estar associado entidade conta.
3.2 Dependncia de Ex stncia
5/28/2018 Modelagem de Banco de Dados
28/91
existncia. Se a existncia da entidade x depende da
existncia de y. E se yfor excludo, o mesmo deve acontecercom x. A entidade y chamada de entidade dominante e a xchamada entidade subordinada. Como exemplo, considere oconjunto de entidades emprstimo e o conjunto de entidadespagamento. Toda entidade pagamento est associada a umaentidade emprstimo. Se uma entidade emprstimo excluda,todas as entidades pagamento a ela associada devem serexcludas tambm. Se por outro lado, uma entidadepagamentofor excluda, a entidade emprstimo no ser afetada.Portanto, a entidade emprstimo dominante e a entidadepagamentosubordinada.
A participao de um conjunto de entidades E no conjunto derelacionamento R dita total se todas as entidades em E
participam de pelo menos um relacionamento em R. Se somentealgumas entidades em E participam do relacionamento R aparticipao do conjunto de entidades dito parcial. Aparticipao total est relacionada existncia dedependncia.
4.Chaves
Precisamos especificar como as entidades dentro de um dadoconjunto de entidades e os relacionamentos dentro de umconjunto de relacionamentos podem ser identificados. Oconceito de chave nos ajuda a fazer esta distino.
4.1 Conjunto de Entidades
5/28/2018 Modelagem de Banco de Dados
29/91
Uma superchave um conjunto de um ou mais atributos que,tomados coletivamente, nos permitem identificar de maneira
unvoca, uma entidade em um conjunto de entidades. Ex.seguro_social, e a combinao de seguro_social comnome_cliente.
Se K uma superchave, ento qualquer superconjunto de K tambm uma superchave. Mas, queremos supoerchaves para asquais nenhuma subconjunto possa ser uma superchave. Essassuperchaves so chamadas de chaves candidatas.
O termo chave primria o termon usado para caracterizar achave candidata escolhida pelo projetista do banco como sendode significado especial para a identificao das entidades . Aespecificao de uma chave representa uma restrio ao mundoreal da empresa que est sendo modelada.
4.2 Conjunto de Relacionamentos
A chave primria de um conjunto de entidades permite-nosdistinguir as vrias entidades de um conjunto. Precisamosdefinir um mecanimo para a indetificao dos vriosrelacionamentos em um conjunto de relacionamentos. Seja R umconjunto de relacionamentos envolvendo os conjuntos de
entidades E1, E2, ..., Em. Seja uma chave_primria (Ei)denotando o conjunto de atributos que formam a chaveprimria do conjunto de entidades Ei. Se o relacionamento Rno possui atributos, ento o conjunto de atributos abaixodescreve um relacionamento individual do conjunto R:
Chave_primria (E1) U Chave_primria (E2) U ... UChave_primria(En)
5/28/2018 Modelagem de Banco de Dados
30/91
A estrutura da chave primria para o conjunto de
relacionamentos depende do mapeamento da cardinalidade domesmo. Se o relacionamento muitos para muitos, a chaveprimria do relacionamento constitui a unio das chavesprimrias das duas entidades. Se o relacionamento muitospara um, ento a chave primria da entidade de menorcardinalidade pode identificar o relacionamento. Se orelacionamento um para um, qualquer uma das chaves pode serusada.
5/28/2018 Modelagem de Banco de Dados
31/91
Modelo Relacional
1.Conceitos bsicosUm banco de dados relacional composto por um conjunto detabelasou relaes, cada uma das quais com um nome nico. Aterminologia tabela mais comum nos produtos comerciais e naprtica. J a terminologia relao foi utilizada na literaturaoriginal sobre a abordagem relacional e mais comum na rea
acadmica.
1.1 TabelasUma tabela um conjunto no-ordenado de linhas (tuplas, naterminologia acadmica), onde cada linha composta por umasrie de campos, ou atributos. Cada linha de uma tabelarepresenta um relacionamento entre um conjunto de valores.
Cada campo identificado por nome do campo(ou atributo), e oconjunto de campos das linhas de uma tabela que possuem omesmo nome formam uma coluna.
Comparando-se a tabela de banco de dados com um arquivoconvencional do sistema de arquivos de um computador,identificam-se as seguintes diferenas:
As linhas de uma tabela no esto ordenadas. A ordem derecuperao pelo SGBD arbitrria, a menos que ainstruo de consulta tenha especificado uma ordenao.No possvel referenciar linhas de uma tabela porposio.
Os valores de campo de uma tabela so atmicos emonovalorados. Em arquivos convencionais campos podem
5/28/2018 Modelagem de Banco de Dados
32/91
ser compostos por outros campos, e podem sermultivalorados.
As linguagens de consulta a bases de dados relacionaispermitem o acesso por quaisquer critrios envolvendo oscampos de uma ou mais linhas. Em arquivos convencionais,para buscar registros com base em valores de seuscampos necessrio que exista um caminho de acessodeterminado, que uma estrutura auxiliar como o ndiceou uma cadeia de ponteiros.
1.2 ChavesO conceito bsico para estabelecer relaes entre linhas detabelas de um banco de dados relacional o da chave. Em umbanco de dados relacional h pelo menos trs tipos de chaves aconsiderar: a chave primria, a chave alternativa e a chaveestrangeira.
1.2.1 Chave primriaUma chave primria uma coluna ou uma combinao decolunas que identificam uma linha das demais dentro de umatabela. Na tabela de Empregadosabaixo, a chave primria a coluna CdigoEmp.
CdigoEmp Nome CdigoDepto CategFuncionalE5 Souza D1 C5
E3 Santos D2 C5
E2 Silva D1 C2
E1 Soares D1 -
Tabela 1 - Empregados
5/28/2018 Modelagem de Banco de Dados
33/91
A tabela abaixo mostra uma tabela de Dependentes quepossui uma chave primria composta: CdigoEmpe NoDep.
CdigoEmp NoDep Nome Tipo DataNasc
E1 01 Joo Filho 12/12/91
E1 02 Maria Esposa 01/01/50
E2 01 Ana Esposa 05/11/55
E6 01 Paula Esposa 04/07/60
E6 02 Jos Filho 03/02/85
Tabela 2 - Dependentes
Nas definies formais de chave primria, exige-se que amesma seja mnima, ou seja, todas as suas colunas soefetivamente necessrias para garantir o requisito deunicidade de valores da chave.Na abordagem relacional, ao se definir uma chave primria,
no est se definindo um caminho de acesso. Est sedefinindo uma restrio de integridadeque precisa serobedecida para todos os estados vlidos do BD. Neste caso,a regra a da unicidadedos valores nas colunas quecompem a chave.
1.2.2 Chave estrangeira
Uma chave estrangeira uma coluna ou uma combinao decolunas cujos valores aparecem necessariamente como chaveprimria de uma tabela. A chave estrangeira o mecanismopelo qual implementam-se os relacionamentos em um bancode dados relacional.
Seja a seguinte tabela de departamentos abaixo:
5/28/2018 Modelagem de Banco de Dados
34/91
CdigoDepto NomeDepto
D1 Compras
D2 Engenharia
D3 Vendas
Tabela 3 Departamentos
Na tabela de Empregados, identificada neste exemplo comoTabela 1, a coluna CdigoDepto uma chave estrangeira em
relao a chave primria da tabela Departamentos, ou tabela3. Isso significa que, na tabela Empregados, no podemaparecer linhas que contenham um valor do campoCdigoDepto que no exista na coluna do mesmo nome databela Departamentos. Interpretando esta restrio,dizemos que todo empregado deve estar associado a umdepartamento.
A incluso de uma chave estrangeira impe restries quedevem ser garantidas em diversas situaes de alterao dobanco de dados:
Quando da incluso de uma linha na tabela que
contm a chave estrangeira. Quando da alterao do valor da chave
estrangeira.
Quando da excluso de uma linha na tabela quecontm a chave primria referenciada como chave
estrangeira.
A palavra estrangeira pode denotar a idia enganosa de quea mesma sempre referencia uma chave primria de umaoutratabela. Entretanto esta restrio no existe, A chave
5/28/2018 Modelagem de Banco de Dados
35/91
estrangeira pode referenciar a chave primria da prpriatabela.
Por exemplo, na tabela Empregados mostrada na Tabela,pode existir um campo denotado CodigoEmpGerenteque ocdigo de um outro empregado que gerente do empregadoda linha em questo.
CdigoE
mp
Nome CdigoDep
to
CategFuncio
nal
CdigoEmpGere
nte
E5 Souza D1 C5 -
E3 Santos
D2 C5 E5
E2 Silva D1 C2 E5
E1 Soare
s
D1 - E1
1.2.3 Chave alternativaEm alguns casos, mais de uma coluna ou combinaes decolunas podem servir para distinguir uma linha das demais.Uma das colunas escolhida como chave primria. As demaiscolunas so denominadas chaves alternativas.
Na tabela de Empregadosabaixo, tanto a coluna CodigoEmpquanto a coluna CIC podem ser usadas para distinguir umalinha das demais. Como o CodigoEmpfoi o escolhido para ser
5/28/2018 Modelagem de Banco de Dados
36/91
chave primria, dizemos que a coluna CIC uma chavealternativa.
CdigoEmp Nome CdigoDepto CategFuncional CIC
E5 Souza D1 C5 132.121.331-20
E3 Santos D2 C5 891.221.111-11
E2 Silva D1 C2 341.511.775-45
E1 Soares D1 - 631.692.754-88
1.3 DomniosQuando uma tabela de banco de dados definida, para cadacoluna da tabela deve ser especificado um conjunto de valoresque os campos da respectiva coluna podem assumir. Esteconjunto de valores chamado de domnio da coluna, ou domniodo campo.
Alm disso, deve ser especificado se os campos da colunapodem estar vazios ou no (nullem ingls). Estar vazio indicaque o campo no recebeu nenhum valor de seu domnio.
As colunas na quais no so admitidos valores vazios sochamadas de colunas obrigatrias. As colunas nas quais podemaparecer campos vazios so chamadas de colunas opcionais.
1.4 Restries de IntegridadeUm dos principais objetivos de Banco de Dados manter aintegridade dos dados. Dizer que os dados de um BD estontegros significa dizer que eles refletem corretamente arealidade representada pelo banco de dados e que soconsistentes entre si. Para garantir a integridade dos dados o
5/28/2018 Modelagem de Banco de Dados
37/91
SGBD oferece o mecanismo de restries de integridade. Umarestrio de integridade uma regra de consistncia de dados
que garantida pelo prprio SGBD. Em SGBD Relacionais,existem as seguintes restries de integridade conhecidas:
Integridade de domnio: especificam que o valor de umcampo deve obedecera definio de valores admitidospara a coluna ( o domnioda coluna).
Integridade de vazio: especificado se os campos deuma coluna podem ou no ser vazios. Campos quecompem a chave primria so sempre obrigatrios.
Integridade de chave: trata-se da restrio quedefine que os valores da chave primria e alternativadevem ser nicos.
Integridade referencial: define que os valores doscampos que aparecem em uma chave estrangeira devemaparecer na chave primria da tabela referenciada.
Existem outros tipos de restries de integridade que nose encaixam em nenhuma das categorias acima
mencionadas e que normalmente no so garantidas peloSGBD. Estas restries so chamadas de restriessemnticas. Exemplos:
Um empregado do departamento denominadoFinanas no pode ter a categoria funcionalEngenheiro.
5/28/2018 Modelagem de Banco de Dados
38/91
Um empregado no pode ter um salrio maior doque seu superior imediato.
5/28/2018 Modelagem de Banco de Dados
39/91
lgebraRelacional
A lgebra relacional uma linguagem de consultas procedural.Consiste em um conjunto de operaes tendo como entrada uma ouduas relaes e produzindo como resultado, uma nova relao. Asoperaes fundamentais na lgebra relacional so: select, project,union, set difference, cartesian product e rename.
OperaesFundamentais
1. OperaoSelect
2. OperaoProject
Suponha que desejamos listar todos os nmeros de emprstimos etodos os totais correspondentes, sendo que o nome das agncias
envolvidas no interessa. A operaoprojectpermite-nos produziresta relao. A operao project primria, e retorna oargumento da relao deixando de lado certos atributos. J que arelao um conjunto, quaisquer linhas em duplicidade soeliminadas. A projeo denotada pela letra grega pi . Listamos,subscritos em , os atributos que desejamos no resultado. Oargumento da relao vem entre parnteses, a seguir.
Uma consulta para relacionar todos os nmeros de emprstimos etotais desses emprstimos pode ser escrita da seguinte forma:
nmero_emprstimo, total (emprstimo)
Relao resultante:
Nmero_emprstimo Total
5/28/2018 Modelagem de Banco de Dados
40/91
L-17L-23L-15L-14L-93L-11L-16
10002000150015005009001300
3. Operao Relacional de Comparao
Consideremos uma consulta mais complexa como encontre todosos clientes que moram em Olinda.A consulta seria:
nome_cliente ( cidade_clliente=Olinda) (Cliente))
Ao invs de dar o nome da relao como argumento da projeo,
criamos uma expresso que evolui para uma relao.
4. Operao Union
Considere a consulta para encontrar os nomes de todos os clientesdo banco que tenham uma conta, um emprstimo, ou ambos. Noteque a relao cliente no possui esta informao.
Para responder esta pergunta, o banco precisa de informaes darelao depositante, e da relaodevedor.
Para encontrar todos os clientes com um emprstimono banco:
nome_cliente (devedor)
5/28/2018 Modelagem de Banco de Dados
41/91
Para encontrar todos os clientes que possuem contano banco:
nome_cliente (depositante)
Para responder a consulta precisamos da unio desses doisconjuntos. Encontramos esses dados na relao binria unio,denotada por . Logo, a expresso lgica completa da consulta :
nome_cliente (devedor) nome-cliente (depositante)
Em geral precisamos que unies sejam feitas entre relaescompatveis entre si. Por exemplo, no faria sentido tomar a unioda relao emprstimoe da relao devedor. Para uma operaode unio r s vlida, so necessrias duas condies:
1. As relaes re sdevem possuir o mesmo numero deatributos.
2.Os domnios do I-simo atributo de r e o I-simoatributo de sdevem ser os mesmos para todo i.
5. Operao Diferena entre Conjuntos
A operao diferena entre conjuntos denotada por -, permite-nos encontrar as tuplas que esto numa relao, mas no em outra.
A expresso r sresulta na relao que contm tuplas que estoem r mas no em s. Podemos encontrar todo os clientes quepossuem conta no banco mas no contraram emprstimosescrevendo:
nome_cliente (depositante) - nome_cliente (devedor)
5/28/2018 Modelagem de Banco de Dados
42/91
Assim como no caso da operao de unio, precisamos assegurarque o conjunto diferena seja feito entre relaes compatveis.Portanto, para que as operaes de diferena entre conjuntos r es seja vlida, precisamos que as relaes r e s possuam o mesmonmero de atributos e que o domnio do I-simo atributo de r e doI-simo atributo de s sejam os mesmos.
6. Operao Produto Cartesiano
A operao Produto-Cartesiano representada por x, permite-noscombinar informaes de duas relaes quaisquer. Representamoso produto das relaes r1 e r2 por r1 x r2. Uma relao definidacomo um subconjunto de um produto cartesiano de um conjunto dedomnios. Desde que um mesmo nome de atributo pode aparecertanto em r1 como em r2, precisamos estabelecer um nome deesquema para diferenciar esses dois atributos. Para os atributosque aparecem apenas uma vez nos dois esquemas podemos omitir o
nome da relao.O relao resultante do produto cartesiano de r = devedor xemprstimo, possui uma tupla para cada par de tuplas possvel: umda relao devedor outro da relao emprstimo. Ento, a relaoresultante uma relao grande. Assuma que podemos ter n1tuplas em devedor, e n2 tuplas em emprstimo. A relaoresultante possui n1 * n2 tuplas em r.
Se quisermos, por exemplo, encontrar todos os nomes de todos osclientes que tenham um emprstimo na agncia casa forte.Podemos precisar para isso, de informaes das relaes devedore emprstimo. Ento a expresso:
nome_agncia = casa forte (devedor x emprstimo)
5/28/2018 Modelagem de Banco de Dados
43/91
nos d como resultado uma relao dos devedores ligados aagncia casa forte.
Como a operao produto cartesiano associa todas as tuplas deemprstimo a todas as tuplas de devedor, sabemos que se umcliente contrai um emprstimo na agncia Casa Forte ento existealgumas tuplas em devedor X emprstimo que contm o seu nome.Se escrevermos, ento:
devedor.numero_emprstimo = emprstimo.nmero_emprstimo ( nome_agencia = casaforte (devedor x emprstimo))
E se quisermos apenas o nome do cliente, podemos fazer umaprojeo:
nome_cliente ( devedor.nmero_emprstimo = emprstimo.nmero_emprstimo (nome_agncia = casa forte (devedor x emprstimo)
7. Operao Rename
Ao contrrio das relaes em um banco de dados, o resultado deuma expresso em lgebra relacional no possui um nome quepossa ser usado para referenci-la. O operador renamerepresentado pela letra grega rho permite-nos dar nomes a elas.
Dada a expresso em lgebra relacional E, a expresso x (E) temcomo resultado a expresso E sob o nome x.
Vises
5/28/2018 Modelagem de Banco de Dados
44/91
Em todas as operaes que fizemos at agora, usamos operadoresno nvel lgico. Isto , assumimos que as colees de relaesdadas sejam, na verdade, relaes armazenadas no banco dedados. Muitas vezes no desejvel que todos os usurios vejam omodelo lgico como um todo. Consideraes sobre seguranapodem exigir que determinados dados no estejam disponveispara alguns usurios.
Com base em questes de segurana, podemos criar uma coleode relaes personalizadas de relaes que se ajustam mais asnecessidades do usurio do que ao modelo lgico.
Qualquer relao que no faa parte do modelo lgico, mas visvel para o usurio como uma relao virtual chamada de viso. possvel dar suporte a um grande nmero de vises sobrequalquer conjunto de relaes reais.
Definindo VisesDefinimos uma viso usando o comando create view. Para definiruma viso, precisamos dar um nome a ela e definir a consulta quecriar essa viso. A forma do comando create view:
Create view vas
Como exemplo considere uma viso consistindo de clientesdevedores. Definimos esta viso de clientes_devedorescomo:
Create view clientes_devedores as
nome_cliente ( cliente.seguro_social = devedor.seguro_social (cliente X devedor))
5/28/2018 Modelagem de Banco de Dados
45/91
Linguagem SQL
1.A linguagem SQLSQL tem representado o padro para linguagens de banco dedados relacionais. Existem diversas verses de SQL. Essalinguagem, originalmente chamada de SEQUEL, foi implementadacomo parte do projeto do Sistema R, no incio dos anos 70.Inmeros produtos so suporte atualmente para a linguagemSQL.
A linguagem SQL tem diversas partes: linguagem de definio dedados, linguagem interativa de manipulao de dados,incorporao DML, definio de vises, autorizao, integridade,
controle de transaes.2.Estruturas BsicasA estrutura bsica de uma expresso SQL consiste em trsclusulas: select, frome where.
A clusula select corresponde operao de projeo da
lgebra relacional. Ela usada para relacionar atributosdesejados no resultado de uma consulta. A clusula from corresponde operao do produto
cartesiano da lgebra relacional. Associa ass relaes quesero pesquisadas durante a evoluo de uma expresso.
A clusula where corresponde seleo do predicado nalgebra relacional. Ela consiste em um predicado envolvendoatributos da relao que aparece na clusula from.
5/28/2018 Modelagem de Banco de Dados
46/91
O fato de o termo selectpossuir significado diferente em SQL e
na lgebra relacional infelizmente histrico e precisa serdiferenciada.
Uma consulta tpica em SQL tem a seguinte forma:
Select A1, A2,...,AnFrom r1, r2,,rm
Where P
Onde, cada Ai representa um atributo e cada ri, uma relao. P um predicado.A consulta equivalente seguinte expresso em lgebrarelacional seria:
A1, A2, ...,An ( P (r1 x r2 x...x rm))
Se a clusula wherefor omitida, o predicado P verdadeiro. Noentanto, diferente das expresses em lgebra relacional, emSQL o resultado de uma consulta pode ter mltiplas cpias dealgumas tuplas.
3.A clusula SelectO resultado de uma consulta SQL naturalmente uma relao.Consideremos uma consulta simples usando nosso exemplo debanco. encontre todos os nomes de todas as agncias da relaoemprstimo.
Selectnome_agnciafromemprstimo
5/28/2018 Modelagem de Banco de Dados
47/91
O resultado uma relao consistindo de um atributo simples
intitulado nome_agncia.Se desejarmos, por exemplo, eliminar a duplicidade de linhas,podemos inserir a palavra-chave distinct depois de select.Poderemos reescrever a consulta anterior da seguinte forma:
Select distinctnome_agnciafromemprstimo
Ao contrrio se quisermos deixar explcito que a duplicidade noser eliminada, podemos usar a palavra-clave all.
Select allnome_agnciafromemprstimo
O asterisco * pode denotar todos os atributos na clusula
select.Tambm poder haver expresses aritmticas envolvendo osoperadores +, -, *, e /.Por exemplo:
Selectnome_agncia, nmero_emprstimo, total * 100fromemprstimo
4.A clusula WhereConsidere a consulta: encontre todos os nmeros deemprstimos feitos na agncia Casa Forte, com totaisemprestados acima de 1.200 dlares. Esta consulta pode serescrita como:
5/28/2018 Modelagem de Banco de Dados
48/91
Selectnome_emprstimoFromemprstimo
Wherenome_agncia=Casa Forte andTotal > 1200
A SQL utiliza operadores lgicos and, or e not, na clusulawhere.A SQL tambm possui o operador de comparao between parasimplificar a clusula where que especifica que um valor pode sermenor ou igual a algum valor e maior ou igual a algum outro valor.Se desejarmos encontrar os nmeros de emprstimos cujosmontantes estejam entre 90 e 100 mil dlares, podemos usar acomparao betweenescrevendo:
Selectnome_emprstimoFromemprstimo
Wheretotal between90000 and1000000
Como tambm podemos usar a combinao de operadores: notbetween.
5.A clusula FromA clusula from por si s define um produto cartesiano dasrelaes da clusula. Para uma consulta: para todos os clientesque tenham emprstimo em um banco, encontre seus nomes e
nmeros de emprstimos, em SQL esta consulta pode serescrita como:
Selectdistinct nome_cliente, devedor.nmero_emprstimoFromdevedor, emprstimo
Wheredevedor.nmero_emprstimo =emprstimo.nmero_emprstimo
5/28/2018 Modelagem de Banco de Dados
49/91
6.Operao Rename7.Operaes em Strings8.Ordenao e Apresentao de TuplasSQL oferece ao usurio algum controle sobre a ordenao pormeio da qual as tuplas de uma relao sero apresentadas. Aclusula order by faz com que as tuplas do resultado de umaconsulta apaream em uma determinada ordem. Para listar emordem alfabtica todos os clientes que tenham emprstimo naagncia Casa Forte, escrevemos:
Select distinctnome_clientefromdevedor, emprstimo
where devedor.numero_emprstimo =emprstimo.nmero_emprstimoand nome_agncia = Casa
Forteorder bynome_cliente
Quanto a forma de ordenao, podemos indicar descpara ordemdecrescente e ascpara ordem ascendente. Se quisermos listar a
relao emprstimo inteira, por ordem descendente de total. Sediversos emprstimo possrem o mesmo total, queremos que sejarealizada uma segunda ordenao ascendente por nmero deemprstimo:
Select*fromemprstimo
5/28/2018 Modelagem de Banco de Dados
50/91
order by total desc,nmero_emprstimoasc
9.Definio de Esquema em SQL9.1 Criando Tabelas
Para definir uma relao em SQL, utilizamos o comando createtableda seguinte forma:
Create tabler(A1D1, A2D2,,AnDn,< regras de
integridade1>...
)
onde r, o nome da relao, cada Ai o nome de um atributo noesquema da relao r e Di o tipo do domnio dos valores nodomnio dos atributos Ai. As regras de integridade permitidasenglobam:
Primarykey(aj1, Aj2,,Ajm)Check(p)
A especificao da primary key diz que os atributos Aj1,Aj2,,Aj, formam a chave primria da relao. A especificaode chave primria opcional, mas desejvel para cada uma dasrelaes. A clusula checkespecifica um predicado que precisaser satisfeito por todas as tuplas em uma relao. Exemplos:
5/28/2018 Modelagem de Banco de Dados
51/91
Create tablecliente(nome_cliente char(20) not null,rua_cliente char(30),cidade_cliente char(30),primary key(nome_cliente))
Create tableagncia(nome_agncia char(15) not null,cidade_agencia char(30),
fundos integer,primary key (nome_agncia),check(fundos >=0))
Createtableconta(nmero_conta char(10) not null,
nome_conta char(15),saldo integer,primary key(nmero_conta)check(saldo >= 0))
Create tabledepositante(nome_cliente char(20) not null,
nmero_conta char(10) not null,
primary key (nome_cliente,nmero_conta))
Para remoo de uma relao de um banco de dados SQL usamoso comando drop table. O drop table remove todas asinformaes de uma relao do banco de dados.
5/28/2018 Modelagem de Banco de Dados
52/91
O comandoDrop tabler
uma opo mais drstica do que o comando
Delete fromr
O comando alter tablepode adicionar atributos em uma tabelaj existente. Neste caso, todas as tuplas j existentes, recebemvalor nulo para esse novo atributo. Exemplo:
Alter tabler addA D
Para remover atributos de uma relao, o comando abaixo podeser usado:
Alter tabler dropA
9.2 Vises
Definimos uma viso em SQL usando o comando create view.Para definir a viso precisamos dar-lhe um nome e definir aconsulta que processar essa viso. A forma do comando create
view a seguinte:
Create viewv as
Como exemplo, considere uma viso composta dos nomes dasagncias e nomes de clientes que tenham uma conta na agncia.Definio:
5/28/2018 Modelagem de Banco de Dados
53/91
Create view clientes_contaas(selectnome_agencia, nome_clientefromdepositante, contawhere depositante.nmero_conta =
conta.nmero_conta)
Usando agora a viso clientes_conta podemos encontrar todos oscliente da agencia Casa Forte , escrevendo:
Selectnome_clienteFromclientes_contaWherenome_agencia = Casa Forte
A definio de create view cria uma definio de viso em umbanco de dados e essa definio fica armazenada no banco atque um comando drop viewnome_visoseja executado.
9.3 Modificaes no banco de dadosa)RemoesUm pedido para remoo de dados expresso muitas vezes
do mesmo modo que uma consulta. Podemos removersomente tuplas inteiras, no se pode excluir valores de umatributo em particular. Em SQL, a remoo expressa da
seguinte forma:
Delete from rWhere P
Onde P representa um predicado, e r uma relao. Ocomando delete encontra primeiro todas as tuplas t em rpara as quais P(t) verdadeira, e ento, remove-as de r.
5/28/2018 Modelagem de Banco de Dados
54/91
A clusula wherepode ser omitida no caso, da remoo detodas as tuplas de r.
Exemplos:
Delete from depositanteWhere nome_cliente = Smith
Delete from emprstimo
Where totalbetween 1300and 1500
Delete from conta
Where nome_agencia = Piedade
b)Inseres
Para inserir dados em uma relao podemos especificaruma tupla a ser inserida ou escrever uma consulta cujoresultado um conjunto de tuplas a inserir. Um comandoinsertsimples um pedido de insero para uma tupla.
Exemplos:
Insert into conta
values (Piedade, A-2903, 1200)
Desta forma, vamos inserir valores nas tabelas cliente,conta, agencia e depositante.
Na insero de valores na tabela, possvel inserir valoresnulos em alguns atributos.
c)Atualizaes
5/28/2018 Modelagem de Banco de Dados
55/91
Em determinadas situaes, podemos querer modificar
valores das tuplas sem, no entanto, alterar todos osvalores. Para esse fim, o comando updatepode ser usado.Exemplos:
Update contaSet saldo = saldo * 1.05
Update contaSet saldo = saldo * 1.06Where saldo > 1000
Update contaSet saldo = saldo * 1.05
Where saldo
5/28/2018 Modelagem de Banco de Dados
56/91
From depositante
E o conjunto (b)pode ser obtido com:
Select nome_clienteFrom depositante
a)UnioPara encontrar todos os clientes do banco quepossuem emprstimos, um contam ou ambos,escrevemos:
(Selectnome_clientefrom depositante)union
(select nome_clientefrom devedor)
A operao de union, ao contrrio da clusula select,elimina automaticamente todas as repeties. Se noquisermos que as repeties sejam eliminadas,podemos escrever union all. Exemplo:
(select nome_cliente
from depositante)union all(select nome_cliente
from devedor)
b)Interseo
5/28/2018 Modelagem de Banco de Dados
57/91
Para encontrar todos os clientes que tenham tantoemprstimos quanto contas no banco, escrevemos:
(select distinct nome_clientefrom depositante)intersect(select distinct nome_clientefrom devedor)
A operao intersect elimina automaticamnete todasas repeties.
Se desejarmos obter todas as repeties, teremos deescrever intersect all, no lugar de intersect:
(select nome_clientefrom depositante)
intersect all(select nome_clientefrom devedor)
c)ExcetoPara encontrar todos os clientes que tenham uma
conta e nenhum emprstimo no banco, escrevemos:
(select distinct nome_clientefrom depositante)
except(select nome_clientefrom devedor)
5/28/2018 Modelagem de Banco de Dados
58/91
Da mesma forma das operaes anteriores, aoperao exceptelimina as tuplas repetidas, mas caso
deseje-se obt-las, pode-se usar a except all.
10.2 Funes Agregadas
Funes agregadas so funes que tomam uma coleo devalores como entrada, retornando um valor simples. A SQLoferece cinco funes agregadas pr-programadas:
Mdia (average): avgMnimo (minimum): minMximo (maximum): maxTotal (total): sumContagem (count): count
A entrada para sum e avg precisa ser um conjunto denmeros, mas as outras operaes podem operar comconjuntos de tipos de dados no-numricos tais como strings esemelhantes.
Como exemplo de utilizao, considere a consulta: encontre amdia dos saldos nas contas de cada uma das agncias dobanco. Escrevemos a consulta:
Selectavg(saldo)FromcontaWherenome_agencia = casa forte
Como resultado dessa consulta, obtemos uma relao com umatributo nico, contendo uma nica linha com o valor numrico
5/28/2018 Modelagem de Banco de Dados
59/91
que corresponde mdia dos saldos na agncia. Se quisermosdar um nome a este atributo, pode-se usar a clusula as.
Muitas vezes, em algumas circunstncias, poder havernecessidade de aplicar uma funo agregada a um grupo deconjunto de tuplas. Neste caso podemos usar a clusula groupby. Tuplas com os mesmos valores em todos os atributosusados na clusula group by so colocados em um mesmo grupo.
Como ilustrao, considere a seguinte consulta: encontre amdia dos saldos nas contas de cada uma das agncias dobanco. Escreve-se a seguinte consulta:
Selectnome_agncia, avg(saldo)Fromconta
Group by(nome_agncia)
H casos em que existe a necessidade de eliminarem-serepeties antes de efetuar uma funo agregada. Serealmente desejarmos eliminar repeties, usamos a palavradistinctna expresso agregada.Um exemplo dessa utilizao, a seguinte consulta: encontretodos os nmeros dos depositantes de cada agncia. Nestecaso, um depositante contado somente uma vez,independente de quantos depsitos ele fez. Escrevemos essa
consulta da seguinte forma:
Selectnome_agncia, count(distinctnome_cliente)From depositante, contaWhere depositante.nmero_conta =
conta.nmero_contaGroup by nome_agncia
5/28/2018 Modelagem de Banco de Dados
60/91
s vezes precisamos definir condies e aplic-las a grupos aoinvs de aplic-las ao conjunto completo de tuplas. Podemos,
por exemplo, estar interessados em obter quais agnciaspossuem mdia dos saldos aplicados em conta maior que 1200dlares. Essa condio ento no seria aplicada a uma nicatupla, mas, em cada grupo determinado pela clusula group by.Nesse caso, utiliza-se a clusula havingdo SQL. Exemplo:
Selectnome_agncia, avg(saldo)FromcontaGroup bynome_agnciaHaving avg(saldo) > 1200
Se quisermos contar o nmero de tuplas em uma relao,pode-se usar a notao: count(*), como por exemplo:
Selectcount(*)
Fromconta
Exerccios
1. Usando o Interbase, faa scripts em SQL para:a. Criar de todas as tabelas de nosso banco de
dados fictcio de agencia bancria: cliente,
agncia, conta, depositante, e emprstimo.
b.Criar a viso, clientes_conta, como foiespecificada acima.
5/28/2018 Modelagem de Banco de Dados
61/91
c.Especificar trs tipos de consultas:i. Usando as operaes de conjuntos,ii. Usando funes agregadas,
iii. Usando operadores havinge/ou group by.
5/28/2018 Modelagem de Banco de Dados
62/91
Teoria das dependncias
Normalizao
No projeto de um banco de dados devemos:
Identificar dados
Fazer com estes dados representemeficientemente o mundo real
Como proceder? Por intuio?
O processo de identificar e estruturar dados:
Decomposio
Modelo relacional
Normalizao
Normalizao
Normalizao Mtodo permitindo identificar a existncia de
problemas potenciais (anomalias de atualizao)
no projeto de um BD relacional Converte progressivamente uma tabela em
tabelas de grau e cardinalidade menores at quepouca ou nenhuma redundncia de dados exista
Se a normalizao bem sucedida: O espao de armazenamento dos dados diminui A tabela pode ser atualizada com maior
eficincia A descrio do BD ser imediata
5/28/2018 Modelagem de Banco de Dados
63/91
Teoria das Dependncias
Dependncia FuncionalSejam R(A1, A2, ..., An) e X, Y contidos em
{A1,A2,..., An} diz-se que existe umaDependncia Funcional (DF) de X para Y (X ->
Y) se somente se, em R, a um valor de Xcorresponde um e um s valor de Y.Ex: Num-cad -> Nome
DF Total: Se X -> Y e Y -> X (X Y)
Ex: Num-cad CPF DF Plena: quando um atributo dependente de
dois (ou mais) outros.
Ex: Num-pil Trajeto
Num-av
Teoria das Dependncias
Chave Primria
Um atributo A (ou uma coleo de atributos) a
chave primria de uma relao R, se:1. Todos os atributos de R so funcionalmentedependentes de A
2. Nenhum subconjunto de atributos de Atambm tem a propriedade 1.
5/28/2018 Modelagem de Banco de Dados
64/91
Normalizao
Definio:
Uma relao est na Primeira Forma Normal(1NF) se todos os atributos que a compem soatmicos.
Piloto Num-cad Nome CPF Salrio Diploma Descrio
0010 Jos 123456 5.000,00 D1 Helicpteros
D2 Avies a jato
0015 Joo 234567 3.000,00 D3 Bi-motor0020 Manuel 345678 8.000,00 D1 Helicpteros
D2 Avies a jato
D4 Concorde
0018 Jos 987654 4.000,00 D2 Avies a jato
0010 Jos 123456 5.000,00
0020 Manuel 345678 8.000,00
0020 Manuel 345678 8.000,00
Normalizao
Consequncias da Normalizao: Extenso da chave primria Dependncia Funcional de parte da chave
primria Anomalias de atualizao:
atualizao: de todas as tuplas com mesmo valor deatributo
inconsistncia: se a atualizao no for feita emtodos os nveis
incluses: de um item que no tem correspondentepara os outros campos da chave primria
remoes: de um item da chave provoca a remoode informaes adicionais
5/28/2018 Modelagem de Banco de Dados
65/91
Normalizao
Definio:
Uma relao est na Segunda Forma Normal(2NF) se ela est na 1NF e todo atributo no-chave plenamente dependente da chaveprimria.
Num-cad Nome CPF Salrio Diploma Descrio
Dependncias Parciais
Normalizao
Como corrigir:1. Para cada subconjunto de atributos que
compem a chave primria, criar uma relaocom este subconjunto como chave primria
2. Colocar cada um dos outros atributos com osubconjunto mnimo do qual ele depende
(Num-cad, Nome, CPF, Salrio)
(Diploma, Descrio)
(Num-cad, Diploma)
3. Dar nome s novas relaes, por exemplo:Piloto, Diploma e Formao (respectivamente).
5/28/2018 Modelagem de Banco de Dados
66/91
Normalizao
Piloto Num-cad Nome CPF Salrio
0010 Jos 123456 5.000,00
0015 Joo 234567 3.000,00
0020 Manuel 345678 8.000,00
0018 Jos 987654 4.000,00
Diploma Descrio
D2 Avies a jato
D3 Bi-motor
D4 Concorde
D1 Helicpteros
Diploma
Formao
0010 D1
0010 D2
0015 D3
0020 D1
0020 D2
0020 D4
0018 D2
Num-cad Diploma
OBS: Anomalias foram eliminadas
No houve perda de informao
Teoria das Dependncias
Dependncia Transitiva:Ocorre quando Y depende de X e Z depende de Y.
Logo, Z tambm depende de X.
X --> Y --> Z
No-avio Tipo Capacidade Local
5/28/2018 Modelagem de Banco de Dados
67/91
Normalizao
Definio:Uma relao est na Terceira Forma Normal(3NF) se ela est na 2NF e nenhum atributono-chave transitivamente dependente dachave primria.
Definio:Uma relao est na Forma Normal deBoyce/Codd (BCNF) se todo determinante umachave candidata.
Como corrigir?Para cada determinante que no chavecandidata, remover da relao os atributos quedependem dele para criar uma nova relao ondeo determinante ser chave primria.
Normalizao
No-av Tipo Capacidade Local
101 A320 320 Rio
104 B727 250 S.Paulo
105 DC10 350 Rio
103 B727 250 Recife110 B727 250 Rio
Avio
No-av Tipo Local
101 A320 Rio
104 B727 S.Paulo
105 DC10 Rio
103 B727 Recife
110 B727 Rio
Avio1Tipo Capacidade
A320 320
B727 250
DC10 350
Tipo-av
5/28/2018 Modelagem de Banco de Dados
68/91
Normalizao
Relaes com mais de uma chave candidata
Considere a relao:
Aluno Disc Prof.
Maria BD Fernando
Maria ES Paulo
Jos BD Fernando
Jos ES Andr
ADP
e as regras:
- para cada disciplina, cada estudante tem um nico
professor
- cada professor ensina uma nica disciplina
- cada disciplina ensinada por vrios professores
Normalizao
Aluno Disciplina Professor
A relao est na 3NF mas no est na BCNF
A decomposio seria:
Aluno Professor
Maria Fernando
Maria Paulo
Jos Fernando
Jos Andr
AP Professor Disciplina
Fernando BD
Paulo ES
Andr ES
PD
5/28/2018 Modelagem de Banco de Dados
69/91
Normalizao
Piloto Avio TrajetoVo
0020 101 Rec-Rio
105 Rio- Spa
Spa-Rec
0010 101 Rec-For
104
0015 103 Rio-Spa
Seja a relao:
?
Piloto Avio Trajeto
0020 101 Rec-Rio
105 Rio- Spa
Spa-Rec
0010 101 Rec-For104
0015 103 Rio-Spa
0020
0020 105
0020 101 Spa-Rec
0020 101 Rio-Spa
0020 105 Rec-Rio
0010 Rec-For
Vo
Normalizao
Dependncia Multivalorada (DMV)
Dada uma relao R com atributos A, B,C, existe uma dependncia multivalorada
do atributo A no atributo B (A ->-> B)se um valor de A associado a umacoleo especfica de valores de B,independente de quaisquer valores de C.
> A DMV s existe se R tem no mnimo 3 atributos
> Dada R(A, B, C), a DMV A->-> B existe se A ->-> Ctambm existir. Da a notao: A ->-> B|C
5/28/2018 Modelagem de Banco de Dados
70/91
Normalizao
Definio:Uma relao est naQuarta FormaNormal (4NF) se ela est na 3NF (BCNF)e no existem dependnciasmultivaloradas
Como corrigir?Separar a relao em relaes, cada umacontendo o atributo (A) quemultidetermina os outros (B, C), ou seja,R1 (A, B) e R2 (A, C).
Normalizao
Piloto Avio Trajeto
0020 101 Rec-Rio
105 Rio- Spa
Spa-Rec
0010 101 Rec-For104
0015 103 Rio-Spa
0020
0020 105
0020 101 Spa-Rec
0020 101 Rio-Spa
0020 105 Rec-Rio
0010 Rec-For
Vo
Piloto Avio
0020 101
0020 105
0010 101
0010 104
0010 103
Vo1
Piloto Trajeto
0020 Rec-Rio
0020 Rio-Spa
0020 Spa-Rec
0010 Rec-For
0015 Rio-Spa
Vo2
5/28/2018 Modelagem de Banco de Dados
71/91
Normalizao
OBS: Para evitar relaes no 4NF
Quando existir mais de um atributomultivalorado, o processo de normalizaopara 1NF o seguinte:
1. Criar uma relao para cada atributomultivalorado (AMV) (e os que ele determina).
2. Incluir a chave primria da relao original(CPO)
3. A chave primria ser: CPO + AMV
Normalizao
Notas: At agora o processo de decomposio
substituia uma relao por duas de suas
projees Pode acontecer que uma relao no
possa ser decomposta sem perdas emduas relaes mas possa ser decompostaem trs ou mais. Este fenmeno chamado n-decomposio (n > 2).
5/28/2018 Modelagem de Banco de Dados
72/91
Normalizao
Seja a relao Vo e 3 projees binrias:
Piloto Avio TrajetoVo
0020 101 Rec-Rio
105 Rec-Rio
Rio-Spa
0010 101 Rec-Rio
0020
0020 101
Piloto Avio
0020 101
0020 105
0010 101
Avio Trajeto
101 Rec-Rio
105 Rec-Rio
101 Rio-Spa
Trajeto Piloto
Rec-Rio 0020
Rio-Spa 0020
Rec-Rio 0010
V1 V2 V3
Normalizao
Piloto Avio
0020 101
0020 105
0010 101
Avio Trajeto
101 Rec-Rio
105 Rec-Rio
101 Rio-Spa
Trajeto Piloto
Rec-Rio 0020
Rio-Spa 0020
Rec-Rio 0010
V1 V2 V3
Avio
Piloto Avio TrajetoV4
0020 101 Rec-Rio
105 Rec-Rio
Rio-Spa
0010 101 Rec-Rio
0020
0020 101
0010 101 Rio-Spa (Trajeto, Piloto)
Relao
Original
5/28/2018 Modelagem de Banco de Dados
73/91
Normalizao
Definio:Uma relao R satisfaz a Dependncia deJuno * (X, Y, ..., Z) se somente se R igual juno de suas projees em X,Y, ..., Z onde X, Y, ..., Z sosubconjuntos do conjunto de atributos deR.
No exemplo, a relao Vo satisfaz DJ:* ({Piloto, Avio)}, {Avio, Trajeto}, {Trajeto,Piloto})
Normalizao
Problemas na atualizao:
Piloto Avio TrajetoVo
P1 A1 T2
P1 A2 T1
P1 A1 T1
Se t3 inserida => t4
t3 pode ser removida
Se t4 removida, uma das
t tambm tem que ser
Exemplo:
Se Joo pilota um B737
o trajeto Rec-Rio feito por um B737
Joo pilota no trajeto Rec-Rio
Ento
Joo pilota um B737 no trajeto Rec-Rio
O que no necessariamente verdadeiro
P2 A1 T1
5/28/2018 Modelagem de Banco de Dados
74/91
NormalizaoTeorema de Fagin
R (A, B, C) satisfaz DJ *(AB, AC) sesomente se satisfaz o par de DMV A->->B|C
Este teorema pode ser visto como umadefinio de DMV, logo:
DJ
DMV
DF
: Generalizao
Normalizao
OBS: A DJ a forma mais geral dedependncias que tratam relaes sendodecompostas via projeo e reconstrudasvia juno.
Definio:Uma relao est na Quinta FormaNormal (5NF), tambm chamada deForma Normal Projeo/ Juno (PJNF),se somente se cada dependncia dejuno em R uma conseqncia dechaves candidatas de R.
5/28/2018 Modelagem de Banco de Dados
75/91
Normalizao
Notas: Qualquer relao 5NF est na 4NF Resultados demonstrados por Fagin:
Qualquer relao dada pode ser decompostasem perdas em uma coleo equivalentes derelaes em 5NF, ou seja, a 5NF semprerealizvel
Dada uma relao R, podemos dizer se R estna 5NF se conhecermos suas chaves candidatase todas as DJ em R.
Embora seja fcil identificar DF e DMV, o mesmono pode ser dito da DJ porque seu significadointuitivo no bvio.
Resumo da Normalizao
Eliminar atributos no atmicos
1NF
Eliminar DF no plenas
2NF
Eliminar dependncias transitivas
3NF
Eliminar DF cujo determinante no chave candidata
BCNF
Eliminar DMV
4NF
Eliminar DJ (se encontradas)
5NF
5/28/2018 Modelagem de Banco de Dados
76/911
Modelo Entidade-Relacionamento- Anexos
2
Conjunto de Entidades Fracas
Um conjunto de entidades pode no ter atributos suficientespara formar uma chave primria. Esse tipo de conjunto deentidades chamado umconjunto de entidades fracas.
Um conjunto de entidades que tem uma chave primria chamado de conjunto de entidades fortes.
Os conceitos de entidades fortes e fracas estorelacionados s dependncias de existncia. Um membro deum conjunto de entidades fortes definido como umaentidade dominante enquanto que um membro de um conjuntode entidades fracas uma entidade subordinada.
5/28/2018 Modelagem de Banco de Dados
77/912
3
Identificao de Entidades Fracas
Apesar do conjunto de entidades fracas no possuirchave primria, precisa-se distinguir estas entidadesumas das outras. O identificador de um conjunto deentidades fracas um conjunto de atributos quepermite que esta distino seja feita. Esteidentificador tambm chamado de chave parcial.
A chave primria de um conjunto de entidades fracas
formado pela chave primria do conjunto de entidadesfortes ao qual a existncia do conjunto de entidadesfracas est vinculada.
4
O conjunto de entidades dominantes de identificao dito proprietrio do conjunto de entidades fracas porele identificada. O relacionamento que associa oconjunto de entidades fracas a seu proprietrio orelacionamento identificador.
Um conjunto de entidades fracas identificado no
diagrama E-R pela linha dupla usada no retngulo e nolosango do relacionamento correspondente. Um conjunto de entidades fracas pode participar como
proprietrio de um relacionamento identificador comoutro conjunto de entidades fracas.
A dependncia de existncia no implicanecessariamente, em um conjunto de entidades fracas.O conjunto de entidades subordinadas pode ter umachave primria.
5/28/2018 Modelagem de Banco de Dados
78/913
5
Diagrama E-R com um conjunto deentidades fracas
N um ero_ emp r st im o To ta l
Emprstimo Pagamento_
Emprstimo Pagamento
Numero_pagamento
Data_pagamento
Total_pagamento
6
Na figura, o conjunto de entidades fracaspagamento dependente do conjunto de entidadesfortes emprstimopelo conjunto derelacionamentospagamento_emprstimo.
Tambm aparece na figura linhas duplas para
identificar a participao total do conjunto deentidadespagamentono relacionamentopagamento_emprstimo.
A seta depagamento_emprstimoparaemprstimoindica que cadapagamento para umnico emprstimo. O identificador do conjunto deentidades fracas est sublinhado com uma linhatracejada.
5/28/2018 Modelagem de Banco de Dados
79/914
7
Extenso do E-R
A maioria dos sistemas de bancos de dados podeser modelada apenas com os conceitos bsicos doE-R, mas, alguns aspectos de um banco de dados spode ser expresso de modo mais convenienteatravs de algumas extenses do modelo E-R.Discutiremos os recursos de especializao egeneralizao,nvel superior e inferior doconjunto de atributos, herana de atributos eagregao.
8
Especializao
Um conjunto de entidades pode conter sub-grupos de entidades queso, de alguma forma, diferentes de outras entidades do conjunto.
Por exemplo, um subconjunto de entidades pode possuir atributosque no so compartilhados pelas demais entidades do conjunto. O
modelo E-R proporciona um significado para a representao desseagrupamentos distintos entre as entidades.
Seja, por exemplo, um conjunto de entidades conta, com osatributos nmero_contaesaldo. Onde conta futuramenteclassificado como conta_poupanaeconta_corrente.
5/28/2018 Modelagem de Banco de Dados
80/915
9
Cada um dos novos tipos de conta descrito como um conjunto deatributos que, alm de todos os atributos de conta, possui aindaoutros atributos adicionais.
O processo de projetar os subgrupos dentro de um conjunto deentidades chamado de especializao. A especializao da contanos permite distinguir os tipos de contas.
Um conjunto de entidades pode ser especializado por mais de umacaracterstica de diferenciao.
Em termos de diagrama E-R a especializao representada pelotringulo rotulado de ISA. Este relacionamento ISA pode sertambm entendido como um relacionamento de super ou subclasse.
10
ISA
ISA
EspecializaoeG
eneralizao
Numero_conta Saldo
Conta
Conta_P oupana Conta_Corrente
Taxas_Juros Limite_cheque_especial
Padro Especial Snior
Numero_cheque Taxa_juros Saldo_mnimo Data_aniversrio
5/28/2018 Modelagem de Banco de Dados
81/916
11
Generalizao
O refinamento do conjunto de entidades em nveis sucessivos desubgrupos indica um processotop-downde projeto, no qual asdiferenciaes so feitas de modo explcito. O projeto pode serrealizado de modobottom-up, no qual vrios conjuntos de entidadesso sintetizados em um conjunto de entidades de alto nvel, combase em atributos comuns.
Existem, por exemplo, similaridades entre o conjunto de entidadesconta-movimento e o conjunto de entidades conta-poupana, j quepossuem atributos comuns. Este compartilhamento de atributospode ser expressado pela generalizao.
12
Conjuntos de entidades superiores e inferiores podem tambm serdesignados em termos de super e subclasses, respectivamente. Oconjunto de entidades conta uma superclasse econta_poupanaeconta_correnteso subclasses.
Podemos dizer que a generalizao o inverso da especializao,onde a diferena entre as duas abordagens podem ser
caracterizadas pelo ponto de partida e seus objetivos gerais. A especializao parte de um nico conjunto de entidades e
estabelece as diferenas expressas no conjunto de entidades denvel inferior.
A generalizao procede para o conhecimento de um nmero deconjuntos de entidades que compartilham caractersticas comuns,sintetizando esses conjuntos de entidades em um nico conjunto deentidades.
5/28/2018 Modelagem de Banco de Dados
82/917
13
Herana de Atributos
Uma propriedade decisiva das entidades de nveissuperior e inferior criadas pela especializao e pelageneralizao a herana de atributos.
Os atributos dos conjuntos de entidades de nvelsuperior so herdados pelos conjuntos de entidades denvel inferior.
Os conjuntos de entidades de nvel inferior tambmherdam a participao em conjuntos de relacionamentosdos quais participam seus conjuntos de entidades denvel superior.
14
Restries de Projeto
Para a modelagem mais apurada de uma empresa, o projetista dobanco de dados pode optar por definir algumas restries em umageneralizao em particular. Um tipo de restrio envolve adeterminao das entidades que podem participar de um dado
conjunto de entidades de nvel inferior.
Restrio definida por condio: o conjunto de entidades selecionado com base na satisfao ou no de condies oupredicados pr-estabelecidos. Um tipo de generalizao definidapor atributo, poderia ser exemplificada com o atributo da entidadeconta, tipo_conta, especializando a mesma em conta_poupana ouconta_corrente.
5/28/2018 Modelagem de Banco de Dados
83/918
15
Restries de Projeto Definida pelo Usurio: Um conjunto de entidades de baixo nvel
definido pelo usurio no tem seus membros classificados por umacondio, as entidades so designadas a um determinado conjuntode entidades por usurios do banco de dados. A escolha paracomposio de determinada entidade de nvel inferior feita porcritrios individuais, pesando a opinio do usurio, e suaimplementao feita por uma operao que adiciona a entidade aoconjunto de entidades.
Um segundo tipo de restrio determina se uma entidade podepertencer a mais de um conjunto de entidades de nvel inferior.
Mutuamente exclusivos: Exige que uma entidade pertena a apenasum conjunto de entidades de nvel inferior. Como por exemplo, aespecializao da entidade conta.
16
Restries de Projeto
Sobrepostos: Em generalizaes sobrepostas uma mesmaentidade pode pertencer a mais de um conjunto de entidadesde nvel inferior, dentro de uma generalizao simples. Umexemplo, poderia ser dos grupos de trabalho de empregados.
A restrio de totalidade determina se uma entidade de nvelsuperior pertence ou no, a, no mnimo, um dos conjuntos deentidades de nvel inferior dentro da generalizao.
Total: cada entidade do conjunto de entidades de nvelsuperior deve pertencer a um conjunto de entidades de nvelinferior.
5/28/2018 Modelagem de Banco de Dados
84/919
17
Parcial: cada entidade de nvel superior pode pertencer a qualquerum dos conjuntos de entidades de nvel inferior.
A generalizao conta total, enquanto que a generalizaoempregados, parcial.
Quando uma restrio total aplicada, uma entidade inserida em umconjunto de entidades de nvel superior dever ser inserida em pelomenos um dos conjuntos de entidades de nvel inferior.
Em restries definidas por condio, todas as entidades de nvelsuperior que satisfaam tal condio devem ser inseridas no
conjunto de entidades de nvel inferior.Uma entidade excluda de um conjunto de entidades de nvel superior
tambm dever ser excluda de todos os conjuntos de entidades denvel inferior s quais pertenam.
18
Agregao
Uma das limitaes do modelo E-R que no possvelrepresentar relacionamentos entre relacionamentos.
A agregao a abstrao por meio do qual os
relacionamentos so tratados como entidades de nvelsuperior. Como um conjunto de entidades tratado damesma forma que qualquer outro conjunto de entidades.
Considere o exemplo que descreve informaes sobreclientese seus emprstimos.
Suponha que cada par emprstimo-clientepossui umbancrio, ou agente-emprstimo, responsvel peloacompanhamento de determinado emprstimo.
5/28/2018 Modelagem de Banco de Dados
85/9110
19
O conjunto de relacionamentos devedoreagente-emprstimopoderia ser combinado em um nicoconjunto de relacionamentos. Mas, isso tornariaobscura a estrutura deste esquema.
Isto poderia, por exemplo, dar a entender que existeum agente-emprstimoespecfico responsvel paracada par emprstimo-cliente.
Existe ento uma redundncia de informaes na figura
resultante, uma vez que todo par emprstimo-clienteem agente-emprstimoest tambm em devedor.
A melhor maneira de modelar a situao acima descrita,pois, a agregao.
20
Seguro_social
Nome_cliente
Rua-cliente
Cidade_cliente
Cliente devedor Emprstimo
Numero_emprstimo saldo
Agente_
Emprstimo
Empregado
Seguro_social_empregado
Nome_empregado
Numero_telefone
5/28/2018 Modelagem de Banco de Dados
86/9111
21
Projeto de um Esquema de Banco deDados E-R
Diante de uma grande nmero de possibilidades durante o projetode um esquema de banco de dados, o projetista tem as seguintesopes:
Optar entre o uso de um atributo ou de um conjunto deentidades para representar um objeto;
Expressar uma concepo real por um conjunto de entidades oupor um conjunto de relacionamentos;
Optar por um conjunto de relacionamentos ternrio, ou por umpar de de relacionamentos binrios;
Decidir se deve usar entidades fortes;
Decidir se o uso de generalizao apropriado;
Agregar grupos de uma parte do diagrama E-R em um conjuntode entidades simples, caso apropriado.
22
Fases de Projeto
Um modelo de dados de alto nvel proporciona ao projetista umabase conceitual na qual se pode especificar, de modo sistemtico,quais as necessidades dos usurios do banco de dados e como estebanco de dados ser estruturado para atender plenamente todas as
necessidades. A primeira fase do projeto, a especificao das necessidades
do usurio.
A segunda fase a escolha do modelo de dados, por meio daaplicao de seus conceitos. Este fase chamada deprojetoconceitual, e proporciona uma viso detalhada da empresa.Nesta fase o projetista tem a responsabilidade de checar asentidades, relacionamentos, e restries de projeto, comotambm de remover todo tipo de redundncia existente.
5/28/2018 Modelagem de Banco de Dados
87/9112
23
Fases de Projeto
Na especificao das necessidades funcionaisos usuriosdescrevem os tipos de operaes ou transaes que serorealizadas com os dados, como atualizao, consulta e remoo.
O transporte do modelo de dados abstrato para sua implementaoocorre nas fases finais do projeto. Na fase deprojeto lgico, oesquema conceitual mapeado para o modelo de implementaofsica de dados do SGBD que est sendo usado.
Oprojeto fsico totalmente dependente dos recursos do SGBDutilizado.
Iremos trabalhar na fase do projeto do esquema conceitual.
24
Dados-Exemplo de um EmpresaBancria
Um banco organizado em agncias. Cada agncia localizada emuma cidade identificada por um nome nico.
Os clientes do banco so identificados pelo nmero de seu segurosocial. Alm disso, o banco mantm dados como nome, rua e cidade
do cliente. Os clientes podem possuir conta e contrair emprstimos.O cliente pode estar associado a um agente de emprstimos.
Os empregados do banco tambm so identificados pelo nmero deseu seguro social. Alm disso, so guardados os dados de nome enumero de telefone, nome de dependentes,e seguro social de seugerente, para cada empregado. Tambm se encontra no banco dedados a data de contratao do empregado.
5/28/2018 Modelagem de Banco de Dados
88/9113
25
Empresa Bancria
O banco oferece dois tipos de contas: conta-poupana econta-movimento. As contas movimento podem possuirmais de um correntista, e um correntista pode possuirmais de uma conta. Cada conta possui um nico nmero.O banco controla o saldo de cada