Introdução á Banco de Dados

Introdução á Banco de Dados

Projeto de Banco de Dados

Professora: Kele Belloze E-mail: kele.belloze@cefet-rj.br

Estes slides foram desenvolvidos para material de apoio aos alunos da disciplina Projeto de Banco de Dados do curso de Ciência da Computação e Sistemas para Internet do CEFET/RJ. Seu conteúdo é uma pesquisa de vários livros e vários autores que possuem material disponibilizado na Web, sendo em grande parte, transcrições dos mesmos. Ao final, serão apresentadas as referências utilizadas.

Centro Federal de Educação Tecnológica Celso Suckow da Fonseca CEFET/RJ

Disciplina

•Projeto de Banco de Dados

–Sumário

1.Introdução a banco de dados

2.Modelo conceitual: entidade-relacionamento

3.Modelo conceitual: diagrama de classes da UML

4.Modelo lógico de dados

5.Normalização de dados

6.Álgebra relacional 7.Linguagem SQL

3 Introdução

Banco de dados

O que é um banco de dados?

–É uma coleção de dados relacionados (dados = fatos que podem ser gravados e que possui um significado implícito cuja interpretação é dada por uma determinada aplicação);

•Exemplos: Lista dos alunos da universidade

Acervo de uma biblioteca

–Representa de forma abstrata uma parte do mundo real, conhecida como Mini-Mundo ou Universo de Discurso (UD)

–É projetado, construído e povoado por dados, atendendo a uma proposta específica.

•Mantido em dispositivos de armazenamento secundário de um sistema de computação.

Conceitos

•Dados: fatos que podem ser armazenados. –Exemplo: nomes, telefones, endereços

•Banco (Base) de dados: coleção de dados inter-relacionados logicamente.

–Exemplo: dados do cliente de uma loja

•Sistema Gerenciador de Banco de Dados (SGBD): coleção de programas que permitem a criação e a gerência de bases de dados. Um ambiente que é conveniente e eficiente de usar.

•Sistema de Bancos de Dados: Banco de Dados + Software que o manipula (SGBD e Programas de Aplicação).

Aplicações Exemplos de utilização de bancos de dados

•Aplicações tradicionais de banco de dados: a maioria das informações armazenadas e acessadas apresentam-se em formato textual ou numérico.

•Bancos de dados multimídia: armazenam figuras, videoclipes e mensagens sonoras.

•Sistemas de informações geográficas (GIS): capazes de armazenar e analisar mapas, dados do tempo e imagens de satélites.

• Data warehouse e OLAP (online analytical processing): utilizados para extrair e analisar as informações úteis dos bancos de dados para tomada de decisões.

Aplicações

Aplicações de banco de dados:

–Bancos: todas as transações –Linhas aéreas: reservas, horários

–Universidades: matrículas, registros, notas

–Vendas: clientes, produtos, compras

–Revendedores on-line: acompanhamento de pedidos, recomendações personalizadas

–Indústria: produção, estoque, pedidos, cadeia de suprimento

–Recursos humanos: registros de empregados, salários, deduções de impostos

Os bancos de dados permeiam todos os aspectos das nossas vidas

Sistema de Banco de Dados Sistema de banco de dados = banco de dados + SGBD

Usuários/Programadores Programas de Aplicação/ Consultas

Software para processar consultas

Software para acessar dados armazenados

Banco de Dados

Catálogo

(Meta- Dados)

Um catálogo do SGBD armazena as definições dos esquemas das bases de dados mantidas pelo SGBD (metadados). Isto permite o SGBD trabalhar com diferentes BDs;

Sistema Gerenciador de Banco de Dados (SGBD) Serviços de um SGBD

–Redundância Controlada

•Manter dados únicos. Sem a redundância controlada, o banco pode ficar com um estado inconsistente, além de gastar espaço de armazenamento

–Compartilhamento dos Dados

•Um SGBD multiusuário tem que permitir o acesso simultâneo de vários usuários à base de dados

–Concorrência

•Limita as leituras e modificações simultâneas disparadas ao mesmo dado por diferentes usuários

–Reconstrução •Permite que a base de dados volte a um estado consistente após pane.

Serviços de um SGBD

–Acesso controlado

•Quando vários usuários tem acesso à base de dados, em geral eles têm privilégios diferentes quanto à manipulação dos dados.

–Segurança

•Cuida para que o conteúdo da base de dados não seja compreendido por usuários não autorizados.

–Restrições de Integridade

•Manutenção da consistência da base de dados através da validação de restrições definidas sobre os dados.

–Distribuição

•Acesso remoto a bases de dados

–Arquitetura cliente/servidor –Sistemas heterogêneos

Esquemas e instâncias

•Em qualquer modelo de dados é importante distinguir entre a descrição da base de dados e a base de dados propriamente dita

•A descrição de uma base de dados é chamada Esquema da Base de Dados.

–É a estrutura lógica do banco de dados.

•Os dados da base de dados em um particular momento do tempo são chamados Instâncias da Base de Dados (ou Ocorrências ou Estados ou snapshot).

–É o conteúdo real do banco de dados em um determinado ponto no tempo

Esquemas e instâncias •Exemplo:

Instâncias

Arquitetura de banco de dados

Arquitetura em Três Esquemas (three-schema)

•Meta desta arquitetura: separar as aplicações de usuários da base de dados física.

•Esquemas podem ser definidos em três níveis:

1.O nível externo ou visão possui esquemas externos ou visões de usuários. Cada esquema externo descreve a visão da base de dados de um grupo de usuários da base de dados.

2.O nível conceitual tem um esquema conceitual que descreve a estrutura de toda a base de dados e se concentra na descrição de entidades, tipos de dados, relacionamentos e restrições.

3. O nível interno tem um esquema interno que descreve a estrutura de armazenamento físico da base de dados.

Arquitetura de banco de dados •Arquitetura em Três-Esquemas (three-schema)

Figura: arquitetura de três esquemas

Usuários finais Usuários finais

Visão externa 1 Visão externa 2 Visão externa N

Esquema conceitual

Esquema interno

Nível externo (visões de usuários individuais, Descreve a parte do BD em que um grupo de usuários está interessado)

Nível conceitual (estrutura do BD para uma comunidade de usuários)

Nível interno (estrutura do armazenamento físico)

Mapeamento externo/conceitual Mapeamento conceitual/externo

Bancos de dados armazenados

Arquitetura de banco de dados Independência de Dados

•A arquitetura Três-Esquemas pode ser utilizada para explicar conceitos de independência de dados, que podem ser definidos como a capacidade de alterar o esquema de um nível sem ter que alterar o esquema no próximo nível superior.

•Dois tipos de independência de dados podem ser definidos: • Independência Lógica de Dados

• Independência Física de Dados

Arquitetura de banco de dados

Independência de Dados

Independência Lógica de Dados: é a capacidade de alterar o esquema conceitual sem ter que mudar os esquemas externos ou programas de aplicação.

•Pode-se mudar o esquema conceitual para expandir a base de dados, com a adição de novos tipos de registros (ou itens de dados), ou reduzir a base de dados removendo um tipo de registro. Neste último caso, esquemas externos que se referem apenas aos dados remanescentes não devem ser afetados.

Arquitetura de banco de dados

Independência de Dados

Independência Física de Dados: é a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual.

internopodem ser
arquivos físicos para

•Mudanças no esquema necessárias devido a alguma reorganização de melhorar o desempenho nas recuperações e/ou modificações.

•Após a reorganização, se nenhum dado foi adicionado ou perdido, não haverá necessidade de modificar o esquema conceitual.

Modelos de Dados - Níveis de abstração Modelos de dados

•Conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados em três diferentes níveis:

–Nível conceitual: é a forma mais natural dos fatos e estão mais próximas da realidade do ambiente do cliente.

–Nível lógico: descreve logicamente como os dados serão armazenados no banco de dados e as relações entre eles.

–Nível físico: descreve por meio de linguagem específica como os dados serão armazenados.

Conceitual

Lógico

Físico

Modelo conceitual de dados Modelo Conceitual de Dados

•Modelagem conceitual de dados é o processo de criação de um modelo conceitual de dados a partir dos requisitos extraídos para um determinado artefato de software.

•Modelos de dados de alto nível: descrevem os dados como os usuários percebem.

•Utilizam os conceitos de: entidade, atributo e relacionamento.

Entidade: representa um objeto do mundo real ou um conceito.

Atributo: corresponde a alguma propriedade de interesse que ajuda a descrever a entidade/objeto.

Relacionamento: ocorre entre duas ou mais entidades mostrando a associação que existe entre elas.

Modelo conceitual de dados Modelo Conceitual de Dados

•Diagrama de Entidade-Relacionamento

Modelo conceitual de dados Modelo Conceitual de Dados

•Diagrama de Classes da UML

Modelo lógico de dados Modelo Lógico de Dados

•Adota uma tecnologia: Modelo Relacional, Modelo Orientado a Objeto, etc.

•Não adota um produto, dispositivo específico ou meio de armazenamento.

Modelo Conceitual de Dados

Modelo físico de dados Modelo Físico de Dados

•Exige o conhecimento físico das estruturas de dados. •Representa os dados na aplicação.

•Totalmente dependente da solução adotada: tecnologia e produto.

Modelo Lógico de Dados baseado no Modelo Relacional

Cliente (id, nome, rua, cidade)

Modelo Físico de Dados com base no PostgreSQL

Cliente

24 EXERCÍCIOS

(ESAF – 2013 - MF) Valendo-se de uma analogia com programas de computador, é correto afirmar que:

a)os comandos de atribuição no programa correspondem a uma instância de um esquema de banco de dados.

b)um esquema de banco de dados corresponde às declarações de variável em um programa.

c)um esquema de banco de dados corresponde a estruturas recursivas em um programa.

d)os valores das variáveis no programa correspondem às declarações de variáveis em um esquema de banco de dados.

e)um esquema de banco de dados corresponde às instruções utilizando variáveis do tipo string em um programa.

Gabarito: B

(ESAF – 2013 – MF) Banco de dados é:

a)uma relação de dependência entre dados que tem por objetivo atender a uma comunidade de usuários.

b)um conjunto de dados integrados que tem por objetivo impedir acessos indevidos a dados armazenados.

c)um conjunto de dados integrados que tem por objetivo atender a requisitos do sistema operacional.

d)um conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários.

e)uma estrutura de máquina virtual que tem por objetivo atender a necessidades do software de acesso.

Gabarito: D

(FCC - 2012 - TCE-AM) O modelo conceitual de dados

a)é aquele em que os objetos, suas características e relacionamentos têm a representação de acordo com as regras de implementação e limitantes impostos por algum tipo de tecnologia.

b)é aquele em que os objetos, suas características e relacionamentos têm a representação fiel ao ambiente observado, independente de limitações quaisquer impostas por tecnologias, técnicas de implementação ou dispositivos físicos.

c)é aquele elaborado respeitando-se e implementando-se conceitos tais como chaves de acesso, controle de chaves duplicadas, itens de repetição (arrays), normalização, ponteiros e integridade referencial, entre outros.

d)é a fase da modelagem na qual é necessário considerar todas as particularidades de implementação, principalmente o modelo que será utilizado para a implementação futura.

e)está sempre associado às fases de projeto, contrastando com o modelo lógico, que sempre está associado à fase de análise, quando utilizado com as metodologias de desenvolvimento de sistemas e implementado por ferramentas CASE.

Gabarito: B

(CESPE - 2012 - Banco da Amazônia) O modelo conceitual define-se como um modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular.

X ( ) Certo ( ) Errado

(CESPE - 2012 - Banco da Amazônia) Instância é o nome técnico atribuído ao conjunto de programas utilizados, em um dado momento, para o gerenciamento de determinado banco de dados.

X ( ) Certo ( ) Errado

(ESAF - 2012 – CGU) Um Sistema de Banco de Dados é

a)uma associação de dados interdependentes e hardware adequado que permitem aos usuários acesso aos mesmos.

b)uma coleção de dados relacionados por processadores pertencentes a usuários com privilégio de acesso.

c)uma coleção de dados inter-relacionados e um conjunto de programas que permitem aos usuários acessar e modificar esses dados.

d)uma disposição de dados e atributos que permitem aos usuários construir instâncias multiestruturadas.

e)uma coleção de dados de dimensionalidade variável, selecionada por cada usuário através de programas interpretadores.

Gabarito: C

Referências

•Elmasri R., Navathe S., Sistemas de banco de dados. 6ª edição. Person, 2011

•Queiroz C., Projeto e Administração de Banco de Dados. CEFET-RJ

•Ogasawara E., Projeto de Banco de Dados, CEFET-RJ

• w.cos.ufrj.br/~marta

Comentários