SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Unidade 1. Introdução a Projeto de Banco de Dados
1.1 Primeiras Palavras
O projetista de banco de dados é o profissional que conhece as ferramentas de
modelagem de base de dados e as aplica para materializar um banco de dados da
maneira a satisfazer todos os requisitos do usuário. Ele deve achar a equação que
pondera o espaço de armazenamento e a performance e para isso deve ter em mente
que é necessário fazer vários níveis de refinamento para melhorar o projeto. Como
melhorar o projeto? Como aumentar o desempenho? Como melhorar a confiabilidade?
As respostas dessas perguntas serão discutidas neste e nos próximos capítulos.
1.2 Problematizando o tema
O que é projeto de banco de dados? Quais suas etapas? Como tomar a melhor
decisão em um projeto de banco de dados?
1.3 Conceitos Básicos
Bancos de dados tornaram-se essenciais em nosso dia a dia. São inúmeras as
aplicações que utilizam sistemas de banco de dados:
 bancos financeiros: armazenam todas as transações bancárias
 empresas aéreas: reservas de assentos em vôos, agendamentos de vôos
 vendas: clientes, produtos, estoques, compras
 revendedores online: registro de pedidos, recomendações personalizadas
 industria: produção, estoque, pedidos, fornecedores
 recursos humanos: registro de empregados, salários, dedução de taxas
 universidades: registros de alunos, disciplinas, salas, notas
 bibliotecas: registro de acervo, registro de usuário, registro de empréstimo
Muitas dessas aplicações são ditas aplicações tradicionais de banco de dados, pois
envolvem essencialmente textos e números, porém têm crescido as aplicações que
envolvem dados ditos não convencionais como áudio, vídeo, mapas, imagens de
satélites, etc.
O emprego de avanços tecnológicos tornaram possíveis aplicações inovadoras de
sistemas de banco de dados, tais como:
 banco de dados multimídia: armazenam e manipulam figuras, videoclipes,
mensagens sonoras;
 sistemas de informações geográficas: armazenam e analisam mapas, dados do
tempo e imagens de satélite;
1
 data warehouses: utilizados em conjunto com ferramentas de processamento
analítico online (OLAP) possibilitam empresas extrair e analisar informações
úteis de grandes bancos de dados para tomada de decisão;
 tecnologia de bancos de dados ativos e de tempo real são utilizados no
controle de processos industriais e de produção.
 tecnologia de banco de dados aplicadas a WWW aprimora a recuperação de
informações pelos usuários da internet.
Para que você possa compreender as aplicações mais avançadas começaremos
explorando bancos de dados convencionais. Nas próximas seções conheceremos um
pouco mais sobre os conceitos que cercam os sistemas de banco de dados.
1.4 O que é Banco de Dados?
Um banco de dados é uma coleção de dados relacionados, que possui algumas
propriedades implícitas [ELMASRI 2005]:
 representa aspectos do mundo real (chamado minimundo ou universo do
discurso) e mudanças no minimundo devem ser refletidas no banco de dados;
 é uma coleção lógica e coerente de dados com algum significado inerente;
 é projetado, construído e povoado por dados que atendem a uma proposta
específica dirigida a um grupo de usuários.
Um banco de dados pode ser gerado e mantido manualmente ou pode ser
computadorizado. Obviamente, aqui abordaremos apenas sobre bancos de dados
computadorizados.
A coleção das informações armazenadas no banco de dados em um determinado
momento é uma instância do banco de dados. O projeto geral do banco de dados é o
esquema do banco de dados. Depois de finalizado, os esquemas raramente são
modificados.
1.5 Banco de Dados versus Processamento de Arquivos
No processamento de arquivos, cada usuário define e implementa os arquivos
necessários para uma aplicação específica, como parte da programação da aplicação.
Mesmo que mais de uma aplicação necessite trabalhar com o mesmo conjunto de
dados, cada aplicação mantém suas informações em arquivos separados e também
as aplicações que os manipulam. Isso implica em redundâncias indesejadas, tanto em
termos de definição e armazenamento de dados quanto de esforço para manter os
dados comuns atualizados.
Utilizando um banco de dados, um único repositório de dados é construído
e mantido para ser acessado por vários usuários.
As principais características da abordagem de banco de dados são:
2
 natureza autodescritiva do sistema de banco de dados;
 isolamento entre os programas e os dados, e a abstração dos dados;
 suporte para as múltiplas visões dos dados;
 compartilhamento de dados e processamento de transações
1.6 Modelo de Dados
Modelo de dados é uma coleção de ferramentas conceituais para descrever dados,
relações de dados, semântica de dados e restrições de consistência. Um modelo de
dados oferece uma maneira de descrever o projeto de um banco de dados no nível
físico, lógico e de visão.
É usual encontrarmos a seguinte categorização dos modelos de dados:
 Modelo Relacional que representa os dados como uma coleção de tabelas.
Cada tabela possui diversas colunas e cada coluna possui um nome único. É o
modelo de dados mais usado. Esse modelo é um exemplo de um modelo de
dados baseado em registros. Historicamente, o modelo de dados em rede e o
modelo de dados hierárquico precederam o modelo relacional. Esses modelos
estavam intimamente relacionados com sua implementação subjacente.
 Modelo Entidade/Relacionamento (MER) é baseado em uma percepção do
mundo real que consiste em uma coleção de objetos básicos, chamados
entidades e as relações entre esses objetos. Uma entidade é uma "coisa" ou
"objeto" no mundo real que é distinguivel dos outros objetos. O MER é muito
usado no projeto de banco de dados conceitual.
 Modelo Baseado em Objeto pode ser visto como uma extensão ao modelo ER
com noções de encapsulamento, métodos e identidade de objeto. O modelo
relacional-objeto combina os recursos do modelo orientado a objeto com o
relacional.
 Modelo Semi-estruturado permite a especificação dos dados em que itens de
dados individuais do mesmo tipo possam ter distintos conjuntos de atributos.
Isso é o oposto dos modelos mencionados anteriormente. A Extensible Markup
Language (XML) é amplamente utilizada para representar dados semi-
estruturados.
1.7 O que é Sistema de Banco de Dados?
Um sistema de banco de dados contém informação sobre algum extrato do mundo real
do qual se pretende armazenar dados e recuperar informações. Na figura 1.1 está
representada uma configuração simplificada de um sistema de banco de dados.
3
Figura 1.1 Configuração simplificada de um sistema de banco de dados (extraida de
[ELMASRI 2005] - figura cedida pela Editora Pearson).
Conforme apresentado na Figura 1.1, um sistema de banco de dados é basicamente
constituído por um conjunto de dados interrelacionados, que aparece na figura
como "banco de dados armazenados"; por metadados, ou seja, por um conjunto de
dados sobre os dados e as restrições que se aplicam aos mesmos, que aparece na
figura como " Definição dos Dados Armazenados" - comumente chamado de
Dicionário de Dados; o software gerenciador de banco de dados - que é um ambiente
conveniente e eficiente para acessar os dados, e, finalmente um conjunto de
programas de aplicações e/ou consultas que fazem a interface com o usuário e/ou
programador do sistema.
1.8 Projeto de Banco de Dados
O projeto de um sistema de banco de dados segue as seguintes etapas, apresentadas
no diagrama da Figura 1.2:
4
Figura 1.2 Etapas de desenvolvimento de um projeto de sistema de banco de dados.
(extraído de [ELMASRI 2005] - ilustração cedida pela editora Pearson)
Levantamento de requisitos (independe do SGBD). Na fase de levantamento de
requisitos e análise de requisitos podem ser aplicadas técnicas de engenharia de
software que facilitam a comunicação entre especialistas de computação e
especialistas de domínio. É uma fase essencial para o desenvolvimento do sistema,
pois a qualidade da solução está intrinsecamente relacionada a um documento de
requisitos preciso.
Projeto Conceitual (independe do SGBD). A etapa de projeto conceitual é realizada
a partir do documento de requisitos e é independente de implementação, ou
seja,independe de SGBD. O fruto desta etapa é a construção de um modelo
conceitual, que será aqui representado por um diagrama entidade relacionamento.
Nesta etapa podem ainda surgir questões sobre os requisitos, sendo recomendável
questionar o especialista do domínio sobre tais dúvidas; neste sentido o modelo
conceitual pode auxiliar no refinamento dos requisitos do sistema.
5
Projeto Lógico. Esta etapa tem por objetivo transformar o modelo conceitual em um
modelo lógico. O modelo lógico define como o banco de dados será implementado em
SGBD específico.
Projeto Físico nesta etapa o modelo do banco de dados é enriquecido com detalhes
que influenciam no desempenho do banco de dados, mas não interferem em sua
funcionalidade. O modelo obtido nesta fase é o modelo físico do banco de dados.
Estas etapas, conforme [HEUSER 2008] salienta, são adequadas para a construção
de um novo banco de dados. Caso já exista um banco de dados ou um conjunto de
arquivos convencionais, e se pretenda construir um novo banco de dados, o processo
anterior é modificado e incorpora uma etapa de engenharia reversa.
1.6 Pessoas em torno de um Sistema de Banco de Dados
Nesta seção vamos enfocar os profissionais que no cotidiano se envolvem na
construção, manutenção e uso de um grande banco de dados.
Uma primeira figura que se destaca em ambientes que lidam com grandes
quantidades de dados e que necessitam de adequada gestão desses dados por
intermédio de sistemas de banco de dados é o projetista de banco de dados. Os
projetistas devem entrevistar todos os grupos de possíveis usuários para conhecer
suas necessidades de dados, ou seja, são os responsáveis pela identificação dos
dados que serão armazenados no banco e também por escolher as estruturas
adequadas para representar e armazenar esses dados. Os projetistas começam a
trabalhar antes mesmo do sistema ter sido implementado e alimentado com os dados.
Uma outra figura, não menos importante, em se tratando de grandes bancos de dados
é o administrador de banco de dados (DBA) que é responsável pela autorização para
o acesso ao banco, pela coordenação e monitoração de seu uso e por adquirir
recursos de software e hardware conforme necessário. É responsável por problemas
como brechas de segurança ou tempo de resposta ruim do sistema. Ou seja, o DBA é
o responsável pelo sistema de banco de dados durante toda sua vida útil.
Já foi dito que um sistema de banco de dados é desenvolvido para um grupo de
usuários, então obviamente, este é um grupo de pessoas importante no contexto.
Usuários podem ser categorizados em usuários leigos - são aqueles que interagem
com o sistema apenas por intermédio de programas de aplicação previamente
concebidos; programadores de aplicação - são profissionais de computação que
interagem com o sistema com o intuito de escrever programas de aplicação; usuários
avançados interagem com o sistema sem escrever programas, formulam suas
requisições em uma linguagem de consulta de banco de dados e usuários
especializados são usuários avançados que escrevem aplicações de banco de dados
especializadas que não se encaixam na estrutura de processamento de dados
tradicional.
6
1.9 Arquitetura de três-esquemas
A arquitetura de três-esquemas (também conhecida como arquitetura ANSI/SPARC)
para sistemas de banco de dados foi proposta para auxiliar a realização e visualização
de importantes características do uso de banco de dados: independência entre dados
e programas; suporte a múltiplas visões de usuários e uso de catálogo (ou dicionário
de dados) para armazenar a descrição do banco de dados.
O objetivo dessa arquitetura, ilustrada na Figura 1.3, é a separação entre o usuário da
aplicação e o banco de dados físico. Pode-se observar três níveis: o nível interno (ou
físico) que tem um esquema interno que descreve a estrutura de armazenamento
físico do banco de dados. Esse esquema utiliza um modelo de dados físico e descreve
os detalhes completos do armazenamento de dados e caminhos de acesso aos
mesmos. O nível conceitual (ou lógico) que possui um esquema conceitual que
descreve a estrutura de todo o banco de dados para a comunidade usuária. Esse
esquema oculta detalhes de armazenamento físico, concentrando-se em descrição de
entidades, tipos de dados, conexões, operações de usuários e restrições. O nível
externo (ou de visão) abrange os esquemas externos ou visões dos usuários. Cada
esquema externo descreve a parte do banco de dados que um dado grupo de usuários
tem interesse e oculta o restante do banco de dados desse grupo.
Figura 1.3 - Arquitetura Three-Schema (extraída de [ELMASRI 2005])
1.10 Independência de Dados
7
Independência de dados é a capacidade de mudar o esquema em um nível do
sistema de banco de dados sem que ocorram alterações do esquema no próximo nível
mais alto. Existem dois tipos de independência de dados: lógica e física.
Independência de dados lógica: é a capacidade de alterar o esquema conceitual
sem mudar o esquema externo ou os programas de aplicação.
Possíveis alterações no esquema externo: adicionar um tipo de registro ou item de
dados, variar restrições ou remover um tipo de registro ou item de dados.
Independência de dados física: é a capacidade de mudar o esquema interno sem
alterar o esquema conceitual. Consequentemente, o esquema externo também não
necessita alteração.
Possíveis mudanças em nível físico podem ser necessariás quando arquivos físicos
precisam ser reorganizados para aperfeiçoar o desempenho da recuperação ou
atualização de dados.
Com um sistema gerenciador de banco de dados (SGBD) que implementa a
arquitetura de três-esquemas, o catálogo é expandido para incluir informações de
como mapear os dados entre níveis. Ou seja, o SGBD utiliza software adicional para
realizar os mapeamentos e garantir a independência de dados o que acarreta uma
sobrecarga durante a compilação ou a execução de uma consulta ou de um programa,
provocando ineficiências no SGBD. Porisso poucos SGBDs implementam a arquitetura
três-esquemas completa.
1.11 Linguagens de Banco de Dados
Após termos obtido o esquema lógico e físico do banco de dados devemos escolher o
Sistema Gerenciador de Banco de Dados (SGBD) que se deseja utilizar para
implementá-lo.
A linguagem de definição de dados (data definition language) é usada pelo DBA e
pelos projetistas do banco de dados para definir ambos os esquemas conceitual e
interno. O SGBD terá um compilador DDL cuja função é processar os comandos DDL
a fim de identificar os construtores e para armazenar a descrição do esquema no
catálogo do SGBD.
Quando os esquemas do banco de dados estiverem compilados e o banco de dados
populado com os dados, os usuários devem ter alguns meios para manipular esse
banco. As manipulações típicas são a recuperação, inserção, remoção e modificação
dos dados. A linguagem de manipulação de dados (DML) é fornecida pelo SGBD para
essa finalidade.
Basicamente, existem dois tipos de DMLs: procedurais e declarativas. As procedurais
requerem que um usuário especifique que dados são necessários e como obtê-los. As
8
declarativas exigem apenas que os usuários especifiquem o que desejam sem
especificar como obtê-los.
A parte de uma DML que envolve recuperação de informações é chamada de
linguagem de consulta.
1.12 Software Gerenciador de Banco de Dados
Um Sistema Gerenciador de Banco de Dados (SGBD) é um complexo sistema de
software. Os principais módulos componentes de um SGBD encontram-se ilustrados,
de forma simplificada, na Figura 1.4.
O banco de dados e o catálogo são normalmente armazenados no disco. O acesso ao
disco é controlado principalmente pelo sistema operacional do ambiente onde está
instalado o SGBD. Um módulo de alto nível do SGBD, chamado de módulo de
gerenciamento dos dados armazenados, controla o acesso à informação do SGBD
que está armazenada em disco.
O compilador DDL processa as definições do esquema, especificadas na DDL, e
armazena as descrições dos esquemas no catálogo do SGBD. O catálogo inclui
informações como nomes e tamanhos dos arquivos, nomes e tipos de itens de dados,
detalhes de armazenamento de cada arquivo, informações de mapeamento entre os
esquemas e restrições, além de muitas outras informações necessárias para os
módulos do SGBD. Os módulos de software do SGBD acessam as informações do
catálogo conforme necessário.
O compilador de consulta manipula as consultas de alto nível que são feitas
interativamente. Analisa sintaxe, compila ou interpreta a consulta criando um código
de acesso ao BD e então gera as chamadas ao runtime.
O pré-compilador extrai os comandos DML dos programas escritos em uma linguagem
de programação hospedeira. Esses comandos são enviados ao compilador DML para
compilação, gerando códigos para o acesso ao BD. O restante do programa é enviado
para o compilador da linguagem de programação hospedeira. Os códigos-objeto para
os comandos DML e o restante do programa são acoplados, formando uma transação
customizada cujo código executável inclui as chamadas para o runtime.
O processador de consulta de banco de dados em tempo de execução (runtime)
recebe os comandos para a recuperação ou atualização e os executa no banco de
dados.
9
Figura 1.4 - Arquitetura simplicada dos componentes de SGBD. (extraída
de [ELMASRI 2006])
Abstrações no Projeto Conceitual de Banco de Dados
Para auxiliar o projetista na tarefa de modelar os dados, existem os mecanismos de
abstração de dados que permitem melhor representar a semântica da informação
envolvida na aplicação. As abstrações comumente usadas no projeto conceitual são:
classificação, agregação e generalização.
Abstração de Classificação: é usada para agrupar objetos similares, caracterizados
por propriedades comuns, em classes de objetos. Ex: classe EMPREGADO -
instancias : (João, Pedro, ..., Maria). A classificação estabelece um relacionamento É-
INSTANCIA-DE entre cada elemento da classe e a classe.
Abstração de Agregação: é um conceito de abstração para construir objetos
compostos a partir de seus objetos componentes. Ex: Uma entidade é uma agregação
de atributos: PESSOA, composta por Nome, Sexo, Profissão. Um relacionamento é
uma agregação de entidades e atributos. Um atributo composto é uma agregação de
atributos. Podem-se agregar entidades relacionadas entre si, compondo uma entidade
de nível mais alto. Essa abstração estabelece um relacionamento É-PARTE-DE entre
os componentes e a classe.
10
Abstração de Generalização: define um relacionamento de subconjunto entre os
elementos de duas ou mais classes. Ex: classes CARRO e BICICLETA são
subconjuntos da classe VEÍCULO. Essa abstração estabelece um relacionamento É-
UM entre a classe pai (chamada superclasse) e cada classe filha (subclasse). As
subclasses são definidas com base em alguma característica da superclasse. No
exemplo dado, essa característica é tipo de veículo (Carro, Bicicleta). Propriedade
Fundamental da Generalização: todas as abstrações definidas para a classe
genérica são herdadas por todas as classes que são subconjunto.
Abstração de Divisão: nessa abstração subdivide-se os atributos em partes, criando
um atributo composto;
1.13 Modelo ER (Entity-Relationship)
Devido à popularidade e ampla utilização do modelo Entidade-Relacionamento (ER)
para o projeto conceitual de bancos de dados, várias extensões desse modelo foram
propostas, visando sua utilização para a modelagem de informações mais complexas.
O modelo ER foi proposto por Peter Chen em 1976, sendo que originalmente o modelo
incluia somente os conceitos de entidade, relacionamento e atributos; posteriormente
outros conceitos foram introduzidos no modelo, tais como atributos compostos e
hierarquias de generalização. As entidades representam classes de objetos do mundo
real. Na Figura 1.5, Aluno e Professor são exemplos de entidades. São representadas
graficamente através de um retângulo.
Relacionamentos representam associações entre duas ou mais entidades. Na
Figura 1.5, orienta representa um relacionamento binário entre as entidades Professor e
Aluno, representando que um aluno tem 1 (um) professor como orientador e um
professor orienta n (vários) alunos. Os relacionamentos são representados
graficamente através de losangos.
Os atributos representam propriedades das entidades ou dos relacionamentos.
Na Figura 1.5 tem-se para a entidade Aluno os atributos nro_aluno e nome; Professor
possui os atributos nome, sexo e nro_orientados. O atributo nro_oritentados é atributo
derivado, o valor de um atributo derivado é determinado em função dos valores de
outros atributos ou em função do relacionamento.
11
Figura 1.5 Exemplo de Diagrama Entidade-Relacionamento
Cardinalidade mínima e máxima de uma entidade em um relacionamento
Para indicar, de forma mais precisa, a cardinalidade de um relacionamento, pode-se
usar uma notação que indique a ocorrência mínima e máxima de cada entidade no
relacionamento. Por exemplo, a cardinalidade do relacionamento da Figura 1.6 indica
que um aluno pode ou não ter um orientador e pode ter no máximo 1 orientador; um
professor orienta vários alunos, podendo haver professor que não orienta nenhum
aluno.
Figura 1.6 Exemplo de notação de Cardinalidade Mínima e Máxima de um
Relacionamento
Cardinalidade mínima e máxima de um atributo
Os atributos também são caracterizados por cardinalidade mínima e máxima. Por
exemplo, na entidade Professor, da Figura 1.7, o atributo títulos possui cardinalidade
mínima 1 e máxima n, indicando que cada professor deve ter no mínimo um título e
pode ter vários. Quando não especificado no atributo, o valor da cardinalidade é (1,1).
A notação comumente adotada na literatura para um atributo multivalorado é um
circulo duplo. A notação de cardinalidade mínima e máxima foi adotada somente
neste material.
Figura 1.7 Cardinalidade mínima e máxima de um atributo.
12
Cardinalidade mínima de atributo igual a 0 (zero) indica atributo opcional;
cardinalidade máxima de atributo maior que 1 (um) indica que o atributo é
multivalorado.
Atributos compostos
Um atributo composto representa um grupo de atributos que possuem uma afinidade
em significado ou uso. Como exemplo, considere o atributo endereço na
Figura 1.8, que é composto por Rua, Cidade, Estado e Nro.
Figura 1.8 Exemplo de Atributo Composto
Atributos derivados
Um atributo derivado é um atributo cujo valor pode ser gerado a partir de outros
valores armazenados no banco de dados. Na Figura 1.7, o atributo nro-orientandos é
um atributo derivado, pois pode ser calculado através do relacionamento orienta.
Observe que um atributo derivado é representado através de uma elipse tracejada.
Um identificador interno é um atributo ou grupo de atributos que determina uma
entidade. Será adotada a representação da Figura 1.9 para identificador interno.
Figura 1.9 Identificador interno RA.
Quando uma entidade B é identificada através de outra entidade A associada a ela,
tem-se um identificador externo. A entidade B é chamada entidade fraca. A Figura
1.10 apresenta a notação para a identificação externa. Essa notação indica que o
identificador de A faz parte do identificador de B (Id-B é um identificador parcial de B e
isso está indicado através de um grifo tracejado).
Enderço
rua
nro
Cidade
Estado
13
Figura 1.10 Exemplo de Identificador Externo
1.14 Extensão do Modelo ER
Para permitir melhor expressar as informações a serem modeladas, foram introduzidos
no modelo ER as hierarquias de generalização e de subconjunto.
 Hierarquia de Generalização: Uma classe E é uma generalização de um grupo de
classes E1, E2, ..., En. Se cada objeto das classes E1, E2, ..., En é também um
objeto da classe E. Uma forma de representar uma hierarquia de generalização é
dada na Figura 1.11.
Propriedades de Cobertura da generalização
 Cobertura TOTAL ou PARCIAL:
E
E1 E2 En
. . .
Figura 1.11 Hierarquia de generalização
14
A cobertura de uma generalização é total (t) se cada elemento da classe genérica é
mapeada para pelo menos um elemento das classes especializadas.
Ex: A generalização formada pela classe PESSOA e as subclasses HOMEM e
MULHER (Figura 1.12) possui cobertura total.
A cobertura é parcial (p) se existe algum elemento da classe genérica que não
é mapeado para nenhum elemento das subclasses.
Exemplo: Suponha que VEÍCULO é uma classe que contém outros tipos de veículos
além de carros e bicicletas. A generalização da Figura 1.12 é parcial.
Figura 1.12- cobertura total Figura 1.13- cobertura parcial
 Cobertura EXCLUSIVA (DISJUNÇÃO) ou de SOBREPOSIÇÃO (OVERLAPPING):
A cobertura de uma generalização é exclusiva (e) se cada elemento da classe
genérica é mapeado para no máximo um elemento das subclasses. Por exemplo, a
Figura 1.14 representa uma cobertura exclusiva.
(p,e)
Figura 1.14. Cobertura parcial e exclusiva.
A cobertura é de sobreposição (s) se existe algum elemento da classe genérica que
é mapeado para elementos de duas ou mais subclasses diferentes. Por exemplo, na
Figura 1.15, supondo que pode existir aluno que cursa a graduação e a pós-graduação
ao mesmo tempo, tem-se uma cobertura de sobreposição.
parcialtotal
Pessoa
Homem Mulher
Veículo
Carro Bicicleta
Veículo
Carro Bicicleta
15
Figura 1.15 Cobertura de sobreposição.
Notação: Para denotar o tipo de cobertura de uma hierarquia de generalização será
usada a seguinte notação: (t,e), (t,s), (p,e), (p,s) e será indicado como na figura 1.12.
Quando em uma generalização a cobertura não está especificada, admite-se que é
(t,e).
 Hierarquia de Subconjunto: uma entidade E1 é um subconjunto de uma
entidade E se toda ocorrência de E1 for também uma ocorrência de E (Figura
1.17). É um caso particular da hierarquia de generalização.
Numa hierarquia de subconjunto o tipo de cobertura é (p,e) sempre.
A representação de hierarquia de subconjunto é dada na Figura 1.16
Observações:
1. O identificador da entidade genérica é também um identificador para as entidades
da especialização.
2. Entidades da especialização podem ter outros identificadores, como mostrado na
figura Figura 1.18.
sobreposição
Aluno
Aluno-
Graduaçao
Aluno-Pós-
Graduação
Cliente
Cliente
Especial
nro-cli
nome-cli
endereço
vantagens
Figura 1.16. Exemplo
E
E1
e1
e2
e3
e4
e5
Figura 1.17. Hierarquia de
subconjunto.
16
1.15 Considerações finais
Aqui apresentamos os conceitos básicos e definições usadas em projeto de banco de
dados. Neste capítulo, vimos os principais conceitos envolvidos no projeto conceitual
de um banco de dados. Vamos aprofundar esse conhecimento no próximo capítulo
que é dedicado especificamente para projeto e refinamento do projeto conceitual de
um banco de dados.
1.16 Exercícios
1. O que é banco de dados?
2. O que é um SGBD?
3. Qual é a diferença de um Modelo de Dados e um Esquema de Dados?
4. O que é o Modelo Conceitual de Dados?
5. O que é o Modelo Lógico de Dados?
6. O que é o Modelo Físico de Dados?
7. A definição do tipo de índice a ser usado em uma tabela faz parte de qual etapa de
um projeto de banco de dados?
8. A definição do tipo de um atributo (inteiro, alfanumérico,…) faz parte de qual etapa
de um projeto de banco de dados?
9. Nas figuras a seguir, classifique a cobertura das especializações (total/parcial e
exclusiva/sobreposição).
RG
Nome
título
Situação-
Serv-militar
nome-solteira nro-emp nome divisão categoria posição
Pessoa
Homem Mulher
Empr Chefe Gerente Militar
divisão
ident-na-divisão
Figura 1.18. Exemplo de hierarquia.
17
10. Interprete as hierarquias de generalização/especialização como um tipo de
relacionamento. Como as restrições de cobertura (total/parcial e
exclusiva/sobreposição) se relacionam com as restrições de relacionamento total,
entidade fraca e cardinalidade mínima e máxima?
11. Transforme as hierarquias da questão 9 em relacionamentos.
12. Simplifique o esquema conceitual a seguir:
(c)
18
13. Faça o esquema conceitual para os seguintes requisitos.
- Uma oficina mecânica mantém informações sobre todos seus clientes, fornecedores
e funcionários.
- De cada pessoa armazena-se seu nome, RG, CPF, endereço, telefone (no mínimo
1), e-mail.
- De cada funcionário, armazena-se a data de contratação, seu salário total e seu
salário-hora;
- De cada fornecedor armazena-se seu cnpj
- Para cada serviço realizado, armazena-se os funcionários que o executaram, a data
em que o mesmo foi realizado, o tempo demorado e o valor final cobrado (calculado
com base no preço das peças, custo da mão de obra, acrescida em 30%);
- Um serviço pode envolver produtos/peças comprados de fornecedores. Assim para
cada serviço, os produtos usados e os fornecedores onde os mesmos foram obtidos
devem ser cadastrados; Os fornecedores variam os preços dos produtos. Assim para
cada peça do serviço realizado, deve ser armazenado o preço da mesma ao ser
comprada;
- Mantêm-se todos os tipos de serviços realizados na oficina.
1.17 Estudos complementares
Ler Capítulos 1 e 2 do Livro: Heuser, C.A. Projeto De Banco De Dados Editora
Bookman, Porto Alegre, 6a. Edição, 2009.
1.18 Bibliografia Adicional
Batini, C.; Ceri, S. & Navathe, S.B. - Conceptual Database Design. The
Benjamin/Cummings Publishing Company, Inc., 470p., 1992.
Elmasri, R.E. & Navathe, S.B.– Fundamentos de Banco de Dados. Addison-Wesley,
4a. Edição, 2005.
Silberchatz, A.; Korth, H.F.; Sudarshan, S. - Sistemas de Banco de Dados. Makron
Books, 3a.Edição, 1999.
Date, C.J. - Introdução a Sistemas de Banco de Dados. Editora Campus, (tradução da
8a. edição), 2004.
19
Heuser, C.A. – Projeto de Banco de Dados. Editora Sagra-Luzzato, 5a. Edição, 2001.

Mais conteúdo relacionado

Mais procurados

Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dadosHélio Martins
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídosBruno Felipe
 
Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Carlos Melo
 
Matéria de apoio (Base de dados)
Matéria de apoio  (Base de dados)Matéria de apoio  (Base de dados)
Matéria de apoio (Base de dados)André Silva
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dadosessa
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukHebert Alquimim
 
Banco dados i prof ivan (acesse www.portalgsti.com.br)
Banco dados i prof ivan (acesse  www.portalgsti.com.br)Banco dados i prof ivan (acesse  www.portalgsti.com.br)
Banco dados i prof ivan (acesse www.portalgsti.com.br)Andre Sidou
 
Fundamentos de banco de dados 02 caracteristicas e vantagens sgbd
Fundamentos de banco de dados   02 caracteristicas e vantagens sgbdFundamentos de banco de dados   02 caracteristicas e vantagens sgbd
Fundamentos de banco de dados 02 caracteristicas e vantagens sgbdRafael Pinheiro
 
Mini curso banco de dados comercial publicar
Mini curso   banco de dados comercial publicarMini curso   banco de dados comercial publicar
Mini curso banco de dados comercial publicarHilson Silva
 
Sistemas de Gestão de Bases de Dados
Sistemas de Gestão de Bases de DadosSistemas de Gestão de Bases de Dados
Sistemas de Gestão de Bases de DadosClara Ferreira
 
Universidade federal do amazonas Banco de Dados - Apresentação final
Universidade federal do amazonas   Banco de Dados - Apresentação finalUniversidade federal do amazonas   Banco de Dados - Apresentação final
Universidade federal do amazonas Banco de Dados - Apresentação finalRenan Levy
 
Aula tecnologia da informacao 6 banco de dados
Aula tecnologia da informacao 6 banco de dadosAula tecnologia da informacao 6 banco de dados
Aula tecnologia da informacao 6 banco de dadoswapiva
 

Mais procurados (19)

Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dados
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos12 objetivos de banco de dados distribuídos
12 objetivos de banco de dados distribuídos
 
Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1
 
Matéria de apoio (Base de dados)
Matéria de apoio  (Base de dados)Matéria de apoio  (Base de dados)
Matéria de apoio (Base de dados)
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos Alexandruk
 
Ara7129 unidade-1-v1
Ara7129 unidade-1-v1Ara7129 unidade-1-v1
Ara7129 unidade-1-v1
 
Banco dados i prof ivan (acesse www.portalgsti.com.br)
Banco dados i prof ivan (acesse  www.portalgsti.com.br)Banco dados i prof ivan (acesse  www.portalgsti.com.br)
Banco dados i prof ivan (acesse www.portalgsti.com.br)
 
Fundamentos de banco de dados 02 caracteristicas e vantagens sgbd
Fundamentos de banco de dados   02 caracteristicas e vantagens sgbdFundamentos de banco de dados   02 caracteristicas e vantagens sgbd
Fundamentos de banco de dados 02 caracteristicas e vantagens sgbd
 
Mini curso banco de dados comercial publicar
Mini curso   banco de dados comercial publicarMini curso   banco de dados comercial publicar
Mini curso banco de dados comercial publicar
 
SGBD
SGBDSGBD
SGBD
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Introdução ao banco de dados
Introdução ao banco de dadosIntrodução ao banco de dados
Introdução ao banco de dados
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Sistemas de Gestão de Bases de Dados
Sistemas de Gestão de Bases de DadosSistemas de Gestão de Bases de Dados
Sistemas de Gestão de Bases de Dados
 
Universidade federal do amazonas Banco de Dados - Apresentação final
Universidade federal do amazonas   Banco de Dados - Apresentação finalUniversidade federal do amazonas   Banco de Dados - Apresentação final
Universidade federal do amazonas Banco de Dados - Apresentação final
 
Aula tecnologia da informacao 6 banco de dados
Aula tecnologia da informacao 6 banco de dadosAula tecnologia da informacao 6 banco de dados
Aula tecnologia da informacao 6 banco de dados
 
Artc 1249307788 43
Artc 1249307788 43Artc 1249307788 43
Artc 1249307788 43
 

Semelhante a Projeto de Banco de Dados - Capítulo 1

01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basicoAmadeo Santos
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS Antonio Pedro
 
Bdii aula01 apresentacao
Bdii aula01 apresentacaoBdii aula01 apresentacao
Bdii aula01 apresentacaosamuel1562314
 
Banco de Dados - Conceitos
Banco de Dados - ConceitosBanco de Dados - Conceitos
Banco de Dados - Conceitosssuser69006f
 
Apostila de Banco dados
Apostila de Banco dadosApostila de Banco dados
Apostila de Banco dadosFernando Palma
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 
AULA 01.pptx
AULA 01.pptxAULA 01.pptx
AULA 01.pptxEizoKato
 
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxAula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxJoseph Donald
 
Introdução à Banco de Dados
Introdução à Banco de DadosIntrodução à Banco de Dados
Introdução à Banco de DadosBruno Siqueira
 

Semelhante a Projeto de Banco de Dados - Capítulo 1 (20)

C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Artc 1249307788 43
Artc 1249307788 43Artc 1249307788 43
Artc 1249307788 43
 
Banco de dados parte 01
Banco de dados parte 01Banco de dados parte 01
Banco de dados parte 01
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 
Bdii aula01 apresentacao
Bdii aula01 apresentacaoBdii aula01 apresentacao
Bdii aula01 apresentacao
 
Banco de Dados - Conceitos
Banco de Dados - ConceitosBanco de Dados - Conceitos
Banco de Dados - Conceitos
 
BDI_1_conceitos
BDI_1_conceitosBDI_1_conceitos
BDI_1_conceitos
 
Apostila de Banco dados
Apostila de Banco dadosApostila de Banco dados
Apostila de Banco dados
 
Apostila de banco de dados da ucg
Apostila de banco de dados da ucgApostila de banco de dados da ucg
Apostila de banco de dados da ucg
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
BD I - Aula 07 A - Projetando BD
BD I - Aula 07 A - Projetando BDBD I - Aula 07 A - Projetando BD
BD I - Aula 07 A - Projetando BD
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Artigo de banco de dados
Artigo  de banco de dadosArtigo  de banco de dados
Artigo de banco de dados
 
AULA 01.pptx
AULA 01.pptxAULA 01.pptx
AULA 01.pptx
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxAula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
 
Introdução à Banco de Dados
Introdução à Banco de DadosIntrodução à Banco de Dados
Introdução à Banco de Dados
 

Último

UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 

Último (20)

UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 

Projeto de Banco de Dados - Capítulo 1

  • 1. Unidade 1. Introdução a Projeto de Banco de Dados 1.1 Primeiras Palavras O projetista de banco de dados é o profissional que conhece as ferramentas de modelagem de base de dados e as aplica para materializar um banco de dados da maneira a satisfazer todos os requisitos do usuário. Ele deve achar a equação que pondera o espaço de armazenamento e a performance e para isso deve ter em mente que é necessário fazer vários níveis de refinamento para melhorar o projeto. Como melhorar o projeto? Como aumentar o desempenho? Como melhorar a confiabilidade? As respostas dessas perguntas serão discutidas neste e nos próximos capítulos. 1.2 Problematizando o tema O que é projeto de banco de dados? Quais suas etapas? Como tomar a melhor decisão em um projeto de banco de dados? 1.3 Conceitos Básicos Bancos de dados tornaram-se essenciais em nosso dia a dia. São inúmeras as aplicações que utilizam sistemas de banco de dados:  bancos financeiros: armazenam todas as transações bancárias  empresas aéreas: reservas de assentos em vôos, agendamentos de vôos  vendas: clientes, produtos, estoques, compras  revendedores online: registro de pedidos, recomendações personalizadas  industria: produção, estoque, pedidos, fornecedores  recursos humanos: registro de empregados, salários, dedução de taxas  universidades: registros de alunos, disciplinas, salas, notas  bibliotecas: registro de acervo, registro de usuário, registro de empréstimo Muitas dessas aplicações são ditas aplicações tradicionais de banco de dados, pois envolvem essencialmente textos e números, porém têm crescido as aplicações que envolvem dados ditos não convencionais como áudio, vídeo, mapas, imagens de satélites, etc. O emprego de avanços tecnológicos tornaram possíveis aplicações inovadoras de sistemas de banco de dados, tais como:  banco de dados multimídia: armazenam e manipulam figuras, videoclipes, mensagens sonoras;  sistemas de informações geográficas: armazenam e analisam mapas, dados do tempo e imagens de satélite;
  • 2. 1  data warehouses: utilizados em conjunto com ferramentas de processamento analítico online (OLAP) possibilitam empresas extrair e analisar informações úteis de grandes bancos de dados para tomada de decisão;  tecnologia de bancos de dados ativos e de tempo real são utilizados no controle de processos industriais e de produção.  tecnologia de banco de dados aplicadas a WWW aprimora a recuperação de informações pelos usuários da internet. Para que você possa compreender as aplicações mais avançadas começaremos explorando bancos de dados convencionais. Nas próximas seções conheceremos um pouco mais sobre os conceitos que cercam os sistemas de banco de dados. 1.4 O que é Banco de Dados? Um banco de dados é uma coleção de dados relacionados, que possui algumas propriedades implícitas [ELMASRI 2005]:  representa aspectos do mundo real (chamado minimundo ou universo do discurso) e mudanças no minimundo devem ser refletidas no banco de dados;  é uma coleção lógica e coerente de dados com algum significado inerente;  é projetado, construído e povoado por dados que atendem a uma proposta específica dirigida a um grupo de usuários. Um banco de dados pode ser gerado e mantido manualmente ou pode ser computadorizado. Obviamente, aqui abordaremos apenas sobre bancos de dados computadorizados. A coleção das informações armazenadas no banco de dados em um determinado momento é uma instância do banco de dados. O projeto geral do banco de dados é o esquema do banco de dados. Depois de finalizado, os esquemas raramente são modificados. 1.5 Banco de Dados versus Processamento de Arquivos No processamento de arquivos, cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação. Mesmo que mais de uma aplicação necessite trabalhar com o mesmo conjunto de dados, cada aplicação mantém suas informações em arquivos separados e também as aplicações que os manipulam. Isso implica em redundâncias indesejadas, tanto em termos de definição e armazenamento de dados quanto de esforço para manter os dados comuns atualizados. Utilizando um banco de dados, um único repositório de dados é construído e mantido para ser acessado por vários usuários. As principais características da abordagem de banco de dados são:
  • 3. 2  natureza autodescritiva do sistema de banco de dados;  isolamento entre os programas e os dados, e a abstração dos dados;  suporte para as múltiplas visões dos dados;  compartilhamento de dados e processamento de transações 1.6 Modelo de Dados Modelo de dados é uma coleção de ferramentas conceituais para descrever dados, relações de dados, semântica de dados e restrições de consistência. Um modelo de dados oferece uma maneira de descrever o projeto de um banco de dados no nível físico, lógico e de visão. É usual encontrarmos a seguinte categorização dos modelos de dados:  Modelo Relacional que representa os dados como uma coleção de tabelas. Cada tabela possui diversas colunas e cada coluna possui um nome único. É o modelo de dados mais usado. Esse modelo é um exemplo de um modelo de dados baseado em registros. Historicamente, o modelo de dados em rede e o modelo de dados hierárquico precederam o modelo relacional. Esses modelos estavam intimamente relacionados com sua implementação subjacente.  Modelo Entidade/Relacionamento (MER) é baseado em uma percepção do mundo real que consiste em uma coleção de objetos básicos, chamados entidades e as relações entre esses objetos. Uma entidade é uma "coisa" ou "objeto" no mundo real que é distinguivel dos outros objetos. O MER é muito usado no projeto de banco de dados conceitual.  Modelo Baseado em Objeto pode ser visto como uma extensão ao modelo ER com noções de encapsulamento, métodos e identidade de objeto. O modelo relacional-objeto combina os recursos do modelo orientado a objeto com o relacional.  Modelo Semi-estruturado permite a especificação dos dados em que itens de dados individuais do mesmo tipo possam ter distintos conjuntos de atributos. Isso é o oposto dos modelos mencionados anteriormente. A Extensible Markup Language (XML) é amplamente utilizada para representar dados semi- estruturados. 1.7 O que é Sistema de Banco de Dados? Um sistema de banco de dados contém informação sobre algum extrato do mundo real do qual se pretende armazenar dados e recuperar informações. Na figura 1.1 está representada uma configuração simplificada de um sistema de banco de dados.
  • 4. 3 Figura 1.1 Configuração simplificada de um sistema de banco de dados (extraida de [ELMASRI 2005] - figura cedida pela Editora Pearson). Conforme apresentado na Figura 1.1, um sistema de banco de dados é basicamente constituído por um conjunto de dados interrelacionados, que aparece na figura como "banco de dados armazenados"; por metadados, ou seja, por um conjunto de dados sobre os dados e as restrições que se aplicam aos mesmos, que aparece na figura como " Definição dos Dados Armazenados" - comumente chamado de Dicionário de Dados; o software gerenciador de banco de dados - que é um ambiente conveniente e eficiente para acessar os dados, e, finalmente um conjunto de programas de aplicações e/ou consultas que fazem a interface com o usuário e/ou programador do sistema. 1.8 Projeto de Banco de Dados O projeto de um sistema de banco de dados segue as seguintes etapas, apresentadas no diagrama da Figura 1.2:
  • 5. 4 Figura 1.2 Etapas de desenvolvimento de um projeto de sistema de banco de dados. (extraído de [ELMASRI 2005] - ilustração cedida pela editora Pearson) Levantamento de requisitos (independe do SGBD). Na fase de levantamento de requisitos e análise de requisitos podem ser aplicadas técnicas de engenharia de software que facilitam a comunicação entre especialistas de computação e especialistas de domínio. É uma fase essencial para o desenvolvimento do sistema, pois a qualidade da solução está intrinsecamente relacionada a um documento de requisitos preciso. Projeto Conceitual (independe do SGBD). A etapa de projeto conceitual é realizada a partir do documento de requisitos e é independente de implementação, ou seja,independe de SGBD. O fruto desta etapa é a construção de um modelo conceitual, que será aqui representado por um diagrama entidade relacionamento. Nesta etapa podem ainda surgir questões sobre os requisitos, sendo recomendável questionar o especialista do domínio sobre tais dúvidas; neste sentido o modelo conceitual pode auxiliar no refinamento dos requisitos do sistema.
  • 6. 5 Projeto Lógico. Esta etapa tem por objetivo transformar o modelo conceitual em um modelo lógico. O modelo lógico define como o banco de dados será implementado em SGBD específico. Projeto Físico nesta etapa o modelo do banco de dados é enriquecido com detalhes que influenciam no desempenho do banco de dados, mas não interferem em sua funcionalidade. O modelo obtido nesta fase é o modelo físico do banco de dados. Estas etapas, conforme [HEUSER 2008] salienta, são adequadas para a construção de um novo banco de dados. Caso já exista um banco de dados ou um conjunto de arquivos convencionais, e se pretenda construir um novo banco de dados, o processo anterior é modificado e incorpora uma etapa de engenharia reversa. 1.6 Pessoas em torno de um Sistema de Banco de Dados Nesta seção vamos enfocar os profissionais que no cotidiano se envolvem na construção, manutenção e uso de um grande banco de dados. Uma primeira figura que se destaca em ambientes que lidam com grandes quantidades de dados e que necessitam de adequada gestão desses dados por intermédio de sistemas de banco de dados é o projetista de banco de dados. Os projetistas devem entrevistar todos os grupos de possíveis usuários para conhecer suas necessidades de dados, ou seja, são os responsáveis pela identificação dos dados que serão armazenados no banco e também por escolher as estruturas adequadas para representar e armazenar esses dados. Os projetistas começam a trabalhar antes mesmo do sistema ter sido implementado e alimentado com os dados. Uma outra figura, não menos importante, em se tratando de grandes bancos de dados é o administrador de banco de dados (DBA) que é responsável pela autorização para o acesso ao banco, pela coordenação e monitoração de seu uso e por adquirir recursos de software e hardware conforme necessário. É responsável por problemas como brechas de segurança ou tempo de resposta ruim do sistema. Ou seja, o DBA é o responsável pelo sistema de banco de dados durante toda sua vida útil. Já foi dito que um sistema de banco de dados é desenvolvido para um grupo de usuários, então obviamente, este é um grupo de pessoas importante no contexto. Usuários podem ser categorizados em usuários leigos - são aqueles que interagem com o sistema apenas por intermédio de programas de aplicação previamente concebidos; programadores de aplicação - são profissionais de computação que interagem com o sistema com o intuito de escrever programas de aplicação; usuários avançados interagem com o sistema sem escrever programas, formulam suas requisições em uma linguagem de consulta de banco de dados e usuários especializados são usuários avançados que escrevem aplicações de banco de dados especializadas que não se encaixam na estrutura de processamento de dados tradicional.
  • 7. 6 1.9 Arquitetura de três-esquemas A arquitetura de três-esquemas (também conhecida como arquitetura ANSI/SPARC) para sistemas de banco de dados foi proposta para auxiliar a realização e visualização de importantes características do uso de banco de dados: independência entre dados e programas; suporte a múltiplas visões de usuários e uso de catálogo (ou dicionário de dados) para armazenar a descrição do banco de dados. O objetivo dessa arquitetura, ilustrada na Figura 1.3, é a separação entre o usuário da aplicação e o banco de dados físico. Pode-se observar três níveis: o nível interno (ou físico) que tem um esquema interno que descreve a estrutura de armazenamento físico do banco de dados. Esse esquema utiliza um modelo de dados físico e descreve os detalhes completos do armazenamento de dados e caminhos de acesso aos mesmos. O nível conceitual (ou lógico) que possui um esquema conceitual que descreve a estrutura de todo o banco de dados para a comunidade usuária. Esse esquema oculta detalhes de armazenamento físico, concentrando-se em descrição de entidades, tipos de dados, conexões, operações de usuários e restrições. O nível externo (ou de visão) abrange os esquemas externos ou visões dos usuários. Cada esquema externo descreve a parte do banco de dados que um dado grupo de usuários tem interesse e oculta o restante do banco de dados desse grupo. Figura 1.3 - Arquitetura Three-Schema (extraída de [ELMASRI 2005]) 1.10 Independência de Dados
  • 8. 7 Independência de dados é a capacidade de mudar o esquema em um nível do sistema de banco de dados sem que ocorram alterações do esquema no próximo nível mais alto. Existem dois tipos de independência de dados: lógica e física. Independência de dados lógica: é a capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas de aplicação. Possíveis alterações no esquema externo: adicionar um tipo de registro ou item de dados, variar restrições ou remover um tipo de registro ou item de dados. Independência de dados física: é a capacidade de mudar o esquema interno sem alterar o esquema conceitual. Consequentemente, o esquema externo também não necessita alteração. Possíveis mudanças em nível físico podem ser necessariás quando arquivos físicos precisam ser reorganizados para aperfeiçoar o desempenho da recuperação ou atualização de dados. Com um sistema gerenciador de banco de dados (SGBD) que implementa a arquitetura de três-esquemas, o catálogo é expandido para incluir informações de como mapear os dados entre níveis. Ou seja, o SGBD utiliza software adicional para realizar os mapeamentos e garantir a independência de dados o que acarreta uma sobrecarga durante a compilação ou a execução de uma consulta ou de um programa, provocando ineficiências no SGBD. Porisso poucos SGBDs implementam a arquitetura três-esquemas completa. 1.11 Linguagens de Banco de Dados Após termos obtido o esquema lógico e físico do banco de dados devemos escolher o Sistema Gerenciador de Banco de Dados (SGBD) que se deseja utilizar para implementá-lo. A linguagem de definição de dados (data definition language) é usada pelo DBA e pelos projetistas do banco de dados para definir ambos os esquemas conceitual e interno. O SGBD terá um compilador DDL cuja função é processar os comandos DDL a fim de identificar os construtores e para armazenar a descrição do esquema no catálogo do SGBD. Quando os esquemas do banco de dados estiverem compilados e o banco de dados populado com os dados, os usuários devem ter alguns meios para manipular esse banco. As manipulações típicas são a recuperação, inserção, remoção e modificação dos dados. A linguagem de manipulação de dados (DML) é fornecida pelo SGBD para essa finalidade. Basicamente, existem dois tipos de DMLs: procedurais e declarativas. As procedurais requerem que um usuário especifique que dados são necessários e como obtê-los. As
  • 9. 8 declarativas exigem apenas que os usuários especifiquem o que desejam sem especificar como obtê-los. A parte de uma DML que envolve recuperação de informações é chamada de linguagem de consulta. 1.12 Software Gerenciador de Banco de Dados Um Sistema Gerenciador de Banco de Dados (SGBD) é um complexo sistema de software. Os principais módulos componentes de um SGBD encontram-se ilustrados, de forma simplificada, na Figura 1.4. O banco de dados e o catálogo são normalmente armazenados no disco. O acesso ao disco é controlado principalmente pelo sistema operacional do ambiente onde está instalado o SGBD. Um módulo de alto nível do SGBD, chamado de módulo de gerenciamento dos dados armazenados, controla o acesso à informação do SGBD que está armazenada em disco. O compilador DDL processa as definições do esquema, especificadas na DDL, e armazena as descrições dos esquemas no catálogo do SGBD. O catálogo inclui informações como nomes e tamanhos dos arquivos, nomes e tipos de itens de dados, detalhes de armazenamento de cada arquivo, informações de mapeamento entre os esquemas e restrições, além de muitas outras informações necessárias para os módulos do SGBD. Os módulos de software do SGBD acessam as informações do catálogo conforme necessário. O compilador de consulta manipula as consultas de alto nível que são feitas interativamente. Analisa sintaxe, compila ou interpreta a consulta criando um código de acesso ao BD e então gera as chamadas ao runtime. O pré-compilador extrai os comandos DML dos programas escritos em uma linguagem de programação hospedeira. Esses comandos são enviados ao compilador DML para compilação, gerando códigos para o acesso ao BD. O restante do programa é enviado para o compilador da linguagem de programação hospedeira. Os códigos-objeto para os comandos DML e o restante do programa são acoplados, formando uma transação customizada cujo código executável inclui as chamadas para o runtime. O processador de consulta de banco de dados em tempo de execução (runtime) recebe os comandos para a recuperação ou atualização e os executa no banco de dados.
  • 10. 9 Figura 1.4 - Arquitetura simplicada dos componentes de SGBD. (extraída de [ELMASRI 2006]) Abstrações no Projeto Conceitual de Banco de Dados Para auxiliar o projetista na tarefa de modelar os dados, existem os mecanismos de abstração de dados que permitem melhor representar a semântica da informação envolvida na aplicação. As abstrações comumente usadas no projeto conceitual são: classificação, agregação e generalização. Abstração de Classificação: é usada para agrupar objetos similares, caracterizados por propriedades comuns, em classes de objetos. Ex: classe EMPREGADO - instancias : (João, Pedro, ..., Maria). A classificação estabelece um relacionamento É- INSTANCIA-DE entre cada elemento da classe e a classe. Abstração de Agregação: é um conceito de abstração para construir objetos compostos a partir de seus objetos componentes. Ex: Uma entidade é uma agregação de atributos: PESSOA, composta por Nome, Sexo, Profissão. Um relacionamento é uma agregação de entidades e atributos. Um atributo composto é uma agregação de atributos. Podem-se agregar entidades relacionadas entre si, compondo uma entidade de nível mais alto. Essa abstração estabelece um relacionamento É-PARTE-DE entre os componentes e a classe.
  • 11. 10 Abstração de Generalização: define um relacionamento de subconjunto entre os elementos de duas ou mais classes. Ex: classes CARRO e BICICLETA são subconjuntos da classe VEÍCULO. Essa abstração estabelece um relacionamento É- UM entre a classe pai (chamada superclasse) e cada classe filha (subclasse). As subclasses são definidas com base em alguma característica da superclasse. No exemplo dado, essa característica é tipo de veículo (Carro, Bicicleta). Propriedade Fundamental da Generalização: todas as abstrações definidas para a classe genérica são herdadas por todas as classes que são subconjunto. Abstração de Divisão: nessa abstração subdivide-se os atributos em partes, criando um atributo composto; 1.13 Modelo ER (Entity-Relationship) Devido à popularidade e ampla utilização do modelo Entidade-Relacionamento (ER) para o projeto conceitual de bancos de dados, várias extensões desse modelo foram propostas, visando sua utilização para a modelagem de informações mais complexas. O modelo ER foi proposto por Peter Chen em 1976, sendo que originalmente o modelo incluia somente os conceitos de entidade, relacionamento e atributos; posteriormente outros conceitos foram introduzidos no modelo, tais como atributos compostos e hierarquias de generalização. As entidades representam classes de objetos do mundo real. Na Figura 1.5, Aluno e Professor são exemplos de entidades. São representadas graficamente através de um retângulo. Relacionamentos representam associações entre duas ou mais entidades. Na Figura 1.5, orienta representa um relacionamento binário entre as entidades Professor e Aluno, representando que um aluno tem 1 (um) professor como orientador e um professor orienta n (vários) alunos. Os relacionamentos são representados graficamente através de losangos. Os atributos representam propriedades das entidades ou dos relacionamentos. Na Figura 1.5 tem-se para a entidade Aluno os atributos nro_aluno e nome; Professor possui os atributos nome, sexo e nro_orientados. O atributo nro_oritentados é atributo derivado, o valor de um atributo derivado é determinado em função dos valores de outros atributos ou em função do relacionamento.
  • 12. 11 Figura 1.5 Exemplo de Diagrama Entidade-Relacionamento Cardinalidade mínima e máxima de uma entidade em um relacionamento Para indicar, de forma mais precisa, a cardinalidade de um relacionamento, pode-se usar uma notação que indique a ocorrência mínima e máxima de cada entidade no relacionamento. Por exemplo, a cardinalidade do relacionamento da Figura 1.6 indica que um aluno pode ou não ter um orientador e pode ter no máximo 1 orientador; um professor orienta vários alunos, podendo haver professor que não orienta nenhum aluno. Figura 1.6 Exemplo de notação de Cardinalidade Mínima e Máxima de um Relacionamento Cardinalidade mínima e máxima de um atributo Os atributos também são caracterizados por cardinalidade mínima e máxima. Por exemplo, na entidade Professor, da Figura 1.7, o atributo títulos possui cardinalidade mínima 1 e máxima n, indicando que cada professor deve ter no mínimo um título e pode ter vários. Quando não especificado no atributo, o valor da cardinalidade é (1,1). A notação comumente adotada na literatura para um atributo multivalorado é um circulo duplo. A notação de cardinalidade mínima e máxima foi adotada somente neste material. Figura 1.7 Cardinalidade mínima e máxima de um atributo.
  • 13. 12 Cardinalidade mínima de atributo igual a 0 (zero) indica atributo opcional; cardinalidade máxima de atributo maior que 1 (um) indica que o atributo é multivalorado. Atributos compostos Um atributo composto representa um grupo de atributos que possuem uma afinidade em significado ou uso. Como exemplo, considere o atributo endereço na Figura 1.8, que é composto por Rua, Cidade, Estado e Nro. Figura 1.8 Exemplo de Atributo Composto Atributos derivados Um atributo derivado é um atributo cujo valor pode ser gerado a partir de outros valores armazenados no banco de dados. Na Figura 1.7, o atributo nro-orientandos é um atributo derivado, pois pode ser calculado através do relacionamento orienta. Observe que um atributo derivado é representado através de uma elipse tracejada. Um identificador interno é um atributo ou grupo de atributos que determina uma entidade. Será adotada a representação da Figura 1.9 para identificador interno. Figura 1.9 Identificador interno RA. Quando uma entidade B é identificada através de outra entidade A associada a ela, tem-se um identificador externo. A entidade B é chamada entidade fraca. A Figura 1.10 apresenta a notação para a identificação externa. Essa notação indica que o identificador de A faz parte do identificador de B (Id-B é um identificador parcial de B e isso está indicado através de um grifo tracejado). Enderço rua nro Cidade Estado
  • 14. 13 Figura 1.10 Exemplo de Identificador Externo 1.14 Extensão do Modelo ER Para permitir melhor expressar as informações a serem modeladas, foram introduzidos no modelo ER as hierarquias de generalização e de subconjunto.  Hierarquia de Generalização: Uma classe E é uma generalização de um grupo de classes E1, E2, ..., En. Se cada objeto das classes E1, E2, ..., En é também um objeto da classe E. Uma forma de representar uma hierarquia de generalização é dada na Figura 1.11. Propriedades de Cobertura da generalização  Cobertura TOTAL ou PARCIAL: E E1 E2 En . . . Figura 1.11 Hierarquia de generalização
  • 15. 14 A cobertura de uma generalização é total (t) se cada elemento da classe genérica é mapeada para pelo menos um elemento das classes especializadas. Ex: A generalização formada pela classe PESSOA e as subclasses HOMEM e MULHER (Figura 1.12) possui cobertura total. A cobertura é parcial (p) se existe algum elemento da classe genérica que não é mapeado para nenhum elemento das subclasses. Exemplo: Suponha que VEÍCULO é uma classe que contém outros tipos de veículos além de carros e bicicletas. A generalização da Figura 1.12 é parcial. Figura 1.12- cobertura total Figura 1.13- cobertura parcial  Cobertura EXCLUSIVA (DISJUNÇÃO) ou de SOBREPOSIÇÃO (OVERLAPPING): A cobertura de uma generalização é exclusiva (e) se cada elemento da classe genérica é mapeado para no máximo um elemento das subclasses. Por exemplo, a Figura 1.14 representa uma cobertura exclusiva. (p,e) Figura 1.14. Cobertura parcial e exclusiva. A cobertura é de sobreposição (s) se existe algum elemento da classe genérica que é mapeado para elementos de duas ou mais subclasses diferentes. Por exemplo, na Figura 1.15, supondo que pode existir aluno que cursa a graduação e a pós-graduação ao mesmo tempo, tem-se uma cobertura de sobreposição. parcialtotal Pessoa Homem Mulher Veículo Carro Bicicleta Veículo Carro Bicicleta
  • 16. 15 Figura 1.15 Cobertura de sobreposição. Notação: Para denotar o tipo de cobertura de uma hierarquia de generalização será usada a seguinte notação: (t,e), (t,s), (p,e), (p,s) e será indicado como na figura 1.12. Quando em uma generalização a cobertura não está especificada, admite-se que é (t,e).  Hierarquia de Subconjunto: uma entidade E1 é um subconjunto de uma entidade E se toda ocorrência de E1 for também uma ocorrência de E (Figura 1.17). É um caso particular da hierarquia de generalização. Numa hierarquia de subconjunto o tipo de cobertura é (p,e) sempre. A representação de hierarquia de subconjunto é dada na Figura 1.16 Observações: 1. O identificador da entidade genérica é também um identificador para as entidades da especialização. 2. Entidades da especialização podem ter outros identificadores, como mostrado na figura Figura 1.18. sobreposição Aluno Aluno- Graduaçao Aluno-Pós- Graduação Cliente Cliente Especial nro-cli nome-cli endereço vantagens Figura 1.16. Exemplo E E1 e1 e2 e3 e4 e5 Figura 1.17. Hierarquia de subconjunto.
  • 17. 16 1.15 Considerações finais Aqui apresentamos os conceitos básicos e definições usadas em projeto de banco de dados. Neste capítulo, vimos os principais conceitos envolvidos no projeto conceitual de um banco de dados. Vamos aprofundar esse conhecimento no próximo capítulo que é dedicado especificamente para projeto e refinamento do projeto conceitual de um banco de dados. 1.16 Exercícios 1. O que é banco de dados? 2. O que é um SGBD? 3. Qual é a diferença de um Modelo de Dados e um Esquema de Dados? 4. O que é o Modelo Conceitual de Dados? 5. O que é o Modelo Lógico de Dados? 6. O que é o Modelo Físico de Dados? 7. A definição do tipo de índice a ser usado em uma tabela faz parte de qual etapa de um projeto de banco de dados? 8. A definição do tipo de um atributo (inteiro, alfanumérico,…) faz parte de qual etapa de um projeto de banco de dados? 9. Nas figuras a seguir, classifique a cobertura das especializações (total/parcial e exclusiva/sobreposição). RG Nome título Situação- Serv-militar nome-solteira nro-emp nome divisão categoria posição Pessoa Homem Mulher Empr Chefe Gerente Militar divisão ident-na-divisão Figura 1.18. Exemplo de hierarquia.
  • 18. 17 10. Interprete as hierarquias de generalização/especialização como um tipo de relacionamento. Como as restrições de cobertura (total/parcial e exclusiva/sobreposição) se relacionam com as restrições de relacionamento total, entidade fraca e cardinalidade mínima e máxima? 11. Transforme as hierarquias da questão 9 em relacionamentos. 12. Simplifique o esquema conceitual a seguir: (c)
  • 19. 18 13. Faça o esquema conceitual para os seguintes requisitos. - Uma oficina mecânica mantém informações sobre todos seus clientes, fornecedores e funcionários. - De cada pessoa armazena-se seu nome, RG, CPF, endereço, telefone (no mínimo 1), e-mail. - De cada funcionário, armazena-se a data de contratação, seu salário total e seu salário-hora; - De cada fornecedor armazena-se seu cnpj - Para cada serviço realizado, armazena-se os funcionários que o executaram, a data em que o mesmo foi realizado, o tempo demorado e o valor final cobrado (calculado com base no preço das peças, custo da mão de obra, acrescida em 30%); - Um serviço pode envolver produtos/peças comprados de fornecedores. Assim para cada serviço, os produtos usados e os fornecedores onde os mesmos foram obtidos devem ser cadastrados; Os fornecedores variam os preços dos produtos. Assim para cada peça do serviço realizado, deve ser armazenado o preço da mesma ao ser comprada; - Mantêm-se todos os tipos de serviços realizados na oficina. 1.17 Estudos complementares Ler Capítulos 1 e 2 do Livro: Heuser, C.A. Projeto De Banco De Dados Editora Bookman, Porto Alegre, 6a. Edição, 2009. 1.18 Bibliografia Adicional Batini, C.; Ceri, S. & Navathe, S.B. - Conceptual Database Design. The Benjamin/Cummings Publishing Company, Inc., 470p., 1992. Elmasri, R.E. & Navathe, S.B.– Fundamentos de Banco de Dados. Addison-Wesley, 4a. Edição, 2005. Silberchatz, A.; Korth, H.F.; Sudarshan, S. - Sistemas de Banco de Dados. Makron Books, 3a.Edição, 1999. Date, C.J. - Introdução a Sistemas de Banco de Dados. Editora Campus, (tradução da 8a. edição), 2004.
  • 20. 19 Heuser, C.A. – Projeto de Banco de Dados. Editora Sagra-Luzzato, 5a. Edição, 2001.