Profº MSc. Jeferson Bussula Pinheiro E-Mail: [email protected].

37
Projeto de banco de dados Profº MSc. Jeferson Bussula Pinheiro E-Mail: [email protected]

Transcript of Profº MSc. Jeferson Bussula Pinheiro E-Mail: [email protected].

Page 1: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Projeto de banco de dados

Profº MSc. Jeferson Bussula Pinheiro

E-Mail: [email protected]

Page 2: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Profº MSc. Jeferson Bussula Pinheiro

Page 3: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

CurriculumBacharel em Ciência da Computação. UNIDERP – 2001Especialista em Desenvolvimento para WWW. UNIDERP – 2003Mestrando em Produção e Gestão AgroIndustrial UNIDERP – 2011Especialista em Segurança. Academia de Segurança Microsoft TechNet

Brasil - 2008Profissional 5 Estrelas – Active DirectoryWin2003/win2008 - Microsoft TechNet Brasil – 2008/2009Cargos desenvolvidos

Programador , Analista de sistemas (Consultor)Professor (atual)

Administrador de RedesCoordenador de Sistemas

Gerente de Desenvolvimento (TCE - atual) Coordenador de Engenharia da

Computação

Page 4: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Objetivo Geral Implementar e avaliar a eficiência dos

objetos de banco de dados, implementados segundo aos princípios dos bancos de dados relacionais e dos recursos da linguagem SQL.

Page 5: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Ementa SQL – DDL e DML. Visão. Procedimento

Armazenado. Processamento e Otimização de Consultas. Técnicas de Controle de Concorrência. Técnicas para recuperação do banco de dados. Segurança de banco de dados.

Page 6: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Conteúdo Programático Apresentação e criação de objetos que podem

ser criados dentro de um banco de dados: visão, procedimento armazenado, gatilho.

Índices de armazenamento. Aspectos sobre o processamento e otimização

de consultas. Consistência de um banco de dados: controle

de concorrência. Segurança dos dados: procedimentos para

restauração e segurança do banco.

Page 7: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Bibliografia Básica Heuser, Carlos Alberto. 4 ed. Projeto de Banco de

Dados.

The PostgreSQL Global Development Group. PostgreSQL: Documentação do PostgreSQL. Rio de Janeiro:2005. Disponível em: http://www.postgresql.org.br/docs

ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Pearson Education Brasil, 2006.

PATRICK, John J. SQL: fundamentos. [il]. 2. ed. São Paulo: Berkeley, 2002.

Page 8: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Bibliografia Complementar ABREU, Maurício Pereira; Machado, Felipe Nery. Projeto de

banco de dados - Uma visão prática. São Paulo: Érica. 2002.

MORELLI, Eduardo T. SQL Sever 2000 - Fundamental. São Paulo: Érica, 2001.STEPHENS, Ryan K.; PLEW, Ronald R. Aprenda em 24 Horas SQL. São Paulo: Campus, 2000.

SILBERSCHATZ, Abraham, et al. Sistema de Banco de Dados. Rio de Janeiro : Elsevier, 2006.

SILVA. Robson Soares. Oracle Database 10g Express Edition - Guia de Instalação, Configuração e Administração com Implementação PL/SQL Relacional e Objeto-Relacional. Rio de Janeiro, 2007.

Page 9: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

PLT 670 SILBERSCHATZ, A.; KORTH, H.;

SUDARSHAN, S. Sistema de Banco de Dados, Elsevier, 2012. PLT 670.

Page 10: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Conceitos Fundamentais de Banco de Dados

Page 11: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Segundo Korth, um banco de dados “é uma coleção de dados inter-relacionados, representando informações sobre um domínio específico”, ou seja, sempre que for possível agrupar informações que se relacionam e tratam de um mesmo assunto, posso dizer que tenho um banco de dados.

Conceitos Básicos

Page 12: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Podemos exemplificar situações clássicas como uma lista telefônica, um catálogo de CDs ou um sistema de controle de RH de uma empresa.

Já um sistema de gerenciamento de banco de dados (SGBD) é um software que possui recursos capazes de manipular as informações do banco de dados e interagir com o usuário. Exemplos de SGBDs são: Oracle, SQL Server, DB2, PostgreSQL, MySQL, o próprio Access ou Paradox, entre outros.

Conceitos Básicos

Page 13: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Por último, temos que conceituar um sistema de banco de dados como o conjunto de quatro componentes básicos: dados, hardware, software e usuários. Date conceituou que “sistema de bancos de dados pode ser considerado como uma sala de arquivos eletrônica”.

A imagem ilustra os componentes de um sistema de banco de dados.

Page 14: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.
Page 15: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Os objetivos de um sistema de banco de dados são o de isolar o usuário dos detalhes internos do banco de dados (promover a abstração de dados) e promover a independência dos dados em relação às aplicações, ou seja, tornar independente da aplicação, a estratégia de acesso e a forma de armazenamento.

Page 16: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Os Bancos de dados relacionais (BDR) surgiram em meados da década de 1970. Porém, apenas alguns anos mais tarde as empresas passaram a utilizá-los no lugar de arquivos.

Histórico

Page 17: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Simples, para armazenar informações...

Para que usar um banco de dados

Page 18: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Os Bancos de Dados Relacionais foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações. Pois, enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela raiz do mesmo, nos Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios através de vários pontos.

A linguagem padrão dos Bancos de Dados Relacionais é a Structured Query Language, ou simplesmente SQL, como é mais conhecida.

Por que usar um Banco de Dados Relacional?

Page 19: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Um Banco de Dados Relacional segue o Modelo Relacional.

A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e usamos os termos tabela, linha e coluna.

Na descrição formal estamos preocupados com a semântica formal do modelo e usamos termos como relação (tabela), tupla(linhas) e atributo(coluna).

O Modelo Relacional

Page 20: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

O sistema de banco de dados deve garantir uma visão totalmente abstrata do banco de dados para o usuário, ou seja, para o usuário do banco de dados pouco importa qual unidade de armazenamento está sendo usada para guardar seus dados, contanto que os mesmos estejam disponíveis no momento necessário, a abstração se dá em três níveis.

Abstração de dados

Page 21: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Nível de visão do usuário: as partes do banco de dados que o usuário tem acesso de acordo com a necessidade individual de cada usuário ou grupo de usuários;

Nível conceitual: define quais os dados que estão armazenados e qual o relacionamento entre eles;

Nível físico: é o nível mais baixo de abstração, em que define efetivamente de que maneira os dados estão armazenados.

Abstração de dados

Page 22: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Visão1

Nível Físico

Nível Conceitual

Visão 2 Visão 3 Visão n

Armazenamento das informações

Page 23: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Todo bom sistema de banco de dados deve apresentar um projeto, que visa a organização das informações e utilização de técnicas para que o futuro sistema obtenha boa performance e também facilite infinitamente as manutenções que venham a acontecer.

Projeto de banco de dados

Page 24: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Modelagem conceitual;

Projeto lógico.

O projeto de banco de dados se dá em duas fases:

Page 25: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Estas duas etapas se referem a um sistema de banco de dados ainda não implementado, ou seja, que ainda não exista, um novo projeto.

Para os casos em que o banco de dados já exista, mas é um sistema legado, por exemplo, ou um sistema muito antigo sem documentação, o processo de projeto de banco de dados se dará através da utilização de uma técnica chamada de Engenharia Reversa, que será visto em outra oportunidade.

Page 26: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

É a descrição do BD de maneira independente ao SGBD, ou seja, define quais os dados que aparecerão no BD, mas sem se importar com a implementação que se dará ao BD. Desta forma, há uma abstração em nível de SGBD.

Uma das técnicas mais utilizadas dentre os profissionais da área é a abordagem entidade-relacionamento (ER), onde o modelo é representado graficamente através do diagrama entidade-relacionamento (DER) á uma abstração em nível de SGBD.

Modelo conceitual

Page 27: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Exemplo de diagrama entidade relacionamento

O modelo acima, entre outras coisas, nos traz informações sobre Alunos e Turmas. Para cada Aluno, será armazenado seu número de matrícula, seu nome e endereço, enquanto para cada turma, teremos a informação de seu código, a sala utilizada e o período.

Page 28: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Evolua o modelo anterior de forma que seja possível lançar notas para cada uma das disciplinas do acadêmico.

Favor entregarem seus modelos ao final da aula de segunda-feira (04/03/2013).

Atividade

Page 29: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Descreve o BD no nível do SGBD, ou seja, depende do tipo particular de SGBD que será usado. Não podemos confundir com o Software que será usado. O tipo de SGBD que o modelo lógico trata é se o mesmo é relacional, orientado a objetos, hierárquico, etc.

Abordaremos o SGBD relacional, por serem os mais difundidos. Nele, os dados são organizados em tabelas (bidimensional).

Modelo Lógico

Page 30: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Alunora nome endereco17868 Jeferson Pinheiro Semiramis277864 Eike Batista Rua da Varzea873647 Anderson Silva Santa Mônica

turmacod_turma sala periodo1 332 Diurno2 321 Noturno

falar sobre domínios

Page 31: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

O modelo lógico do BD relacional deve definir quais as tabelas e o nome das colunas que compõem estas tabelas.

Para o nosso exemplo, poderíamos definir nosso modelo lógico conforme o seguinte:

Aluno(ra, nome, endereco)Turma (cod_turma, sala, periodo)

Page 32: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

É importante salientar que os detalhes internos de armazenamento, por exemplo, não são descritos no modelo lógico, pois estas informações fazem parte do modelo físico, que nada mais é que a tradução do modelo lógico para a linguagem do software escolhido para implementar o sistema.

Page 33: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas.

Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada, quanto pelos recursos de hardware disponíveis no equipamento.

Tabelas (ou relações, ou entidades)

Page 34: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla.

Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário.

Registros (ou tuplas)

Page 35: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

As colunas de uma tabela são também chamadas de atributos. Ex.: O campo Nome, ou endereço de uma tabela de um BD relacional.

Colunas (atributos)

Page 36: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.◦ Chave primária: (PK - Primary Key) é a chave que

identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá.

◦ Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será.

Chave

Page 37: Profº MSc. Jeferson Bussula Pinheiro E-Mail: jeferson.pinheiro@uniderp.edu.br.

Korth, H.F. e Silberschatz, A.; Sistemas de Bancos de Dados, Makron Books, 2a. edição revisada, 1994.

Date, C.J.; Int. a Sistemas de Bancos de Dados, tradução da 4a.edição norte-americana, Editora Campus, 1991.

Bibliografia complementar