Buscar

conceitos_banco_dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

BANCO DE DADOS
aula 01
- introdução -
professor: Juliano Varella de Carvalho
INSTITUTO DE EXATAS E TECNOLÓGICAS
Curso de Ciência da Computação
• Apresentação:
 
- nome: Juliano Varella de Carvalho
- formação: bacharel em ciência da computação (UFPel) e mestre em informática (UFPB)
- áreas de interesse: banco de dados; Integração BD-Web; Data Mining ; DW; OO;
• Apresentação da disciplina:
- objetivos:
- Identificar origem, natureza, modelos e utilizações de SGBD;
- Elaborar modelos de dados;
- Entender os conceitos a respeito do modelo relacional;
- Conhecer estruturas internas e externas de um SGBD;
- Implementar técnicas de Normalização;
- Trabalhar com comandos SQL. 
- Identificar aspectos de Concorrência, Segurança e Transação;
- planejamento de aula: 20 aulas
- Apresentação: do professor, dos alunos e da disciplina, interesses e perspectivas da disciplina; seus objetivos e forma de 
avaliação.
- Introdução a SGBD –: visão geral de um banco de dados, conceitos, o por quê, funcionamento de bancos de dados.
1.1 Apresentação
 Modelo Entidade Relacionamento: conceitos, diagrama ER, mapeamento do ER em tabelas.
 
 Modelo Relacional: estrutura e álgebra relacional, cálculo relacional.
 
 Regras de Integridade e Normalização: integridade referencial, restrições de domínios, triggers, formas normais.
 Laboratório de Linguagem SQL: conceitos e comandos.
 Indexação: conceitos, principais estruturas, processamento de consultas.
 Arquitetura de SGBD – Recuperação: conceitos, armazenamento, recuperação e gerenciamento de buffer.
 Arquitetura de SGBD – Concorrência: conceitos, protocolos, granularidade, operações de inserção e remoção.
 Arquitetura de SGBD – Processamento de Transações: conceitos, definição de atomicidade, consistência, durabilidade e 
isolamento, serialização, recuperação. 
 
• Bibliografia: 
- BIBLIOGRAFIA BÁSICA:
- KORTH, H; SILBERCHATZ, A. Sistema de Banco de Dados. SP, Makron Books. 1994. M
- DATE, C.J. Introdução a Sistemas de Banco de Dados. RJ, Campus. 1991.
 - ELMASRI R., NAVATHE S., Fundamentals of Database Systems, second edition, Addison-Wesley, 1994.
- HEUSER, C. A. Projeto de Banco de Dados, Sagra Luzzatto, 2001. 
 
- BIBLIOGRAFIA COMPLEMENTAR:
- MOLINA, H, WIDOM, J., ULLMAN, J. Implementação de Sistemas de Banco de Dados, RJ, Campus, 2001.
- KERN, V. Banco de Dados Relacionais. Érica. 1994.
- ULMANN, J. A First course in databases systems. Prentice Hall. 1997.
1.1 Apresentação
• Avaliação:
Serão realizadas duas avaliações escritas individuais que comporão individualmente dois graus (P1 e P2).
Haverá uma terceira nota T.
A nota final será dada pela média aritmética das três avaliações.
MG= (P1 + P2 + T)/3
Será aprovado o aluno que obtiver média geral superior a sete (7). O aluno que obtiver média inferior a três (3) 
está reprovado.
O aluno que obtiver média maior que três (3) e menor que sete (7) deverá realizar avaliação final (AF).
Na necessidade de uma avaliação final (AF), a média semestral do aluno será dada por:
MS=(MG+AF)/2
Será aprovado o aluno que obtiver média semestral (MS) superior a 5 (cinco).
• Meios de Comunicação
- Site do professor: http://www.wzero.com.br/feevale/
- email do professor: juliano.varella@gmail.com Todos os emails devem ser enviados com o assunto [BANCO-DADOS]
• Apresentação dos alunos (nome – profissão – experiência com BD)
1.1 Apresentação
1.2 Conceitos
1.2 Conceitos
• um banco de dados é o equivalente eletrônico de um armário de arquivamento.
• “um banco de dados é uma coleção de arquivos com dados operacionais armazenados, usados 
pelos sistemas de aplicações de uma empresa específica.” Permite portanto:
• acrescentar novos arquivos ao BD;
• inserir dados em arquivos existentes;
• buscar dados de arquivos existentes;
• excluir dados de arquivos existentes;
• alterar dados de arquivos existentes;
• remover arquivos existentes no BD.
• “sistema de banco de dados, basicamente, é um sistema computadorizado de manutenção de 
registros, ou seja, um sistema cujo objetivo global é manter os dados e torná-los disponíveis quando 
solicitados.”
- dados
- hardware
- software
- usuáriosusuários finais
usuários finais
Banco de dados
Programas de
aplicação
Gerenciador do sistema de banco de dados
1.2 Conceitos
• dados: designam os valores fisicamente registrados no banco de dados;
informações: designam o significados destes valores para um usuário específico;
os dados apresentam 2 características:
- são integrados: entende-se com sendo a união de diversos arquivos, que de outra 
forma estariam dispersos;
Ex: arquivos FUNCIONÁRIO(nome, endereco, depto, salário) e 
 MATRÍCULA(nome, curso,...)
- são compartilhados: os dados são compartilhados por diversos usuários, podendo 
estes acessarem o mesmo conjunto de dados para usá-los com objetivos diferentes. 
Ex: Depto de Pessoal e Depto de Treinamento
• o hardware envolvido para armazenar banco de dados consiste em:
- Processador e memória principal que dão suporte à execução do software
- Memória secundária, dispositivos de entrada e saída, controladores de dispositivos, etc. 
Usados para armazenar os dados.
• o software a camada de software entre os usuários e os dados armazenados denomina-se sistema 
gerenciador de banco de dados (DBMS). O DBMS isola os usuários do BD, dos detalhes a nível de 
hardware e admite operações de usuários.
- Instância de SGBD: cópia específica de um produto, executando em um computador
1.2 Conceitos
• os usuários são os atores que são responsáveis pela administração do banco, carregamento dos 
dados, consulta, criação de aplicações, entre outras tarefas. Dividem-se em:
- programadores de aplicações: interagem com o SGBD, por meio de requisições 
embutidas em programas nas mais diversas linguagens.
- usuários finais: acessam o banco de dados interativamente, via aplicações ou interface 
do próprio SGBD.
- administrador: pessoa responsável por fazer o controle, de modo centralizado, dos 
dados e dos programas que acessam o banco de dados. Suas principais funções são:
de dados
* deve entender dos dados e da importância destes para a empresa;
* decidir quais dados devem ser armazenados no BD;
* estabelecer normas para manter e tratar esses dados;
de banco de dados
* criar os bancos de dados;
* gerar um conjunto de tabelas armazenadas no banco de dados;
* implementar os controles para pôr em prática as normas tomadas;
* assegurar o desempenho adequado do sistema e monitorá-lo;
* definição da estrutura de dados e método de acesso;
* criação e modificação na organização física;
* implementar autorização de acesso ao sistema;
* especificar de regras de integridade;
* servir de elo de ligação com os usuários;
* definir a estratégia de backup e recuperação: após erros humanos, falhas no 
hardware ou no sistema operacional é necessário retornar o BD o mais breve possível e com as 
menores conseqüências ao sistema
• programas utilitários para auxiliar:
- ferramentas de carga: criar uma versão inicial do BD a partir de um ou 
mais arquivos;
- ferramentas de backup/restore (gravação/recuperação);
- ferramentas de reorganização: ajustar o banco de dados de forma a 
aprimorar o seu desempenho – agrupamento dos dados ou regeneração de 
espaço de dados obsoletos;
- ferramentas estatísticas: para computar diversos desempenhos 
estatísticos, tamanhos de arquivos, gráficos, etc;
- ferramentas analíticas: analisa as estatísticas geradas;
- dicionário de dados ou catálogo do sistema ou banco de dados do sistema: 
são “dados sobre dados” (metadados), ou seja, descrição dos objetos do 
sistema.
1.8 Administrador de Banco de Dados
1.2 Conceitos
• Por que usar um banco de dados ?
Comparando-se ao trabalho manual de armazenar dados:
- densidade: não há necessidade de volume de papéis;
- velocidade: recuperação e modificação dos dados é realizada de maneira muito rápida;
- menos trabalho monótono: troca o trabalho manual pelo trabalho mecânico;
- atualidade: informações precisas e atualizadasestão disponíveis a qualquer momento;
- proteção: os dados podem ficar melhor protegidos a perdas não intencionais e acesso ilegal.
- controle centralizado dos dados operacionais:
* redundância dos dados evitada -> desperdício de espaço evitado;
* inconsistência evitada -> informações incorretas evitadas, através da remoção de 
redundâncias ou da redundância controlada (propagação de atualizações);
* compartilhamento dos dados por várias aplicações;
* permite a aplicação de restrições de segurança;
* mantém a integridade dos dados, através da geração de regras de integridade;
* suporte a transações (unidade lógica de trabalho) é oferecido;
* padrões (nomenclatura, documentação, de instalação, etc) podem ser impostos.
1.3 Histórico
Durante a evolução dos bancos de dados, ao longo da história da computação, podemos distinguir 
quatro gerações destes sistemas. São elas:
• 1ª geração - processamento de dados em arquivos independentes: nesta época, os bancos de 
dados não existiam, por isso diversos programas manipulavam diferentes arquivos, os quais eram os 
responsáveis pelo armazenamento dos dados. A figura 1 ilustra esta geração.
Ainda existem algumas aplicações que se utilizam deste método para organização dos dados, basicamente 
porque a estrutura para organização dos dados do sistema é tão simples que pode ser inserida em um ou 
vários arquivos sem conexão lógica entre eles. 
Fig. 1: primeira geração
1.3 Histórico
• 2ª geração - processamento de dados em arquivos integrados: os principais problemas da 1ª 
geração são:
 * redundância de dados;
 * inconsistência;
 * acesso difícil aos dados a partir do usuário
 Dada a necessidade, começam a surgir os primeiros Sistemas de Gerência de Banco de Dados (SGBD's). 
Desta forma, todos os programas passam a compartilhar um único arquivo entre si: o banco de dados 
(figura 2). 
Agora o SGBD responsabilizar-se-á com diversas tarefas, anteriormente espalhadas nos diversos 
programas, tais como: 
 * controle de consistência;
 * segurança dos dados;
 * eficiência;
 * tolerância a falhas, etc 
Fig. 2: segunda geração
• 3ª geração - processamento da informação: os modelos da 2ª geração não são inteiramente 
suficientes para conseguir descrever de forma mais completa a aplicação.
 É necessário mapear a aplicação em conceitos intrínsecos aos bancos de dados como registro, 
normalização, chave primária, etc. Faltam tipos complexos.
 modelagem de um objeto em bd relacional
• 4ª geração - processamento ampliado: os sistemas ditos de 4ª geração procuram ampliar as 
possíveis aplicações de sistemas de banco de dados. Exemplos deles temos:
 * BD's Multimídia: processam de forma adequada objetos multimídia, os quais possuem características 
próprias, exemplos com imagens estáticas ou animadas, sons, textos, gráficos, mapas, etc;
 * Bancos de Dados Espaciais;
 * Bancos de Dados Semi-estruturados e XML;
 * Bancos de Dados Temporais;
 * Bancos de Dados Textuais;
 * Bancos de Dados Distribuídos e Paralelos;
 * Bancos de Dados Móveis;
1.3 Histórico
· 
1.4 Objetivos
• Um SGBD (Sistema Gerenciador de Banco de Dados) deve oferecer um ambiente conveniente e 
eficiente para a recuperação e o armazenamento das informações do banco de dados;
• Um SGBD tem como objetivos solucionar as seguintes desvantagens de um Sistema de 
Processamento de Arquivos:
 * inconsistência e redundância de dados; 
 * dificuldade de acesso aos dados (é necessária a recuperação de informações de modo eficiente); 
 * integridade de dados ineficiente; 
 * problemas de atomicidade (ou tudo ou nada); 
 * problemas na manutenção de acesso concorrente aos dados; 
 * segurança de dados ineficaz 
1.5 Visão geral do Banco de Dados
Banco de dados armazenado
P1 Porca Vermelho 12
P2 Pino Verde 17
nº da
peça
nome da
peça
cor da
peça
peso da
peça
nº da
peça
nome da
peça
cor da
peça
peso da
peça
Duas ocorrências
do tipo de registro
armazenado “peça“
ocorrências de campos armazenados
Arquivo armazenado “peças”
outros arquivos armazenados
Campo armazenado: menor unidade de dados
armazenados.
Registro armazenado: coleção de campos 
armazenados relacionados entre si.
Arquivo armazenado:coleção de todas as
Ocorrências de um único tipo de registro
armazenado.
• níveis:
- interno: mais próximo ao armazenamento físico – relaciona-se à forma com os 
dados são realmente armazenados, bem como o detalhamento de como eles são 
acessados.
- externo: mais próximo aos usuários – forma como os dados são vistos pelos 
usuários individuais.
- conceitual (lógico): nível de simulação – visão conceitual que corresponde à 
representação abstrata do banco de dados em sua totalidade. Utilizam estruturas mais 
simples, tais como sql, gatilhos, backup/recovery, para executar tarefas complexas vistas do nível 
físico.
Esquema
Externo A
Usuário A1 Usuário A2
Linguagem
 X
Linguagem
 Y
Visão externa A
Usuário B1 Usuário B2
Linguagem
 Z
Linguagem
 Z
Usuário B3
Linguagem
 X
Visão externa BEsquemaExterno B 
Esquema
Conceitual
Visão conceitual
Mapeamento B
externo/conceitual
Mapeamento A
externo/conceitual
Mapeamento
conceitual/interno
Banco de dados armazenado (visão interna)
Definição de estrutura
do armazenamento
(esquema interno)
Sistema de
Gerenciamento
de banco de 
Dados (DBMS)
DBA
1.7 Níveis de abstração
• exemplo dos três níveis:
 banco de dados de funcionário
Externo
DCL 1 EMPP, 01 EMPC
 2 EMP# CHAR(6), 02 EMPNO PIC X(6)
 2 SAL FIXED BIN(31); 02 DEPTNO PIC X(4)
Conceitual
EMPLOYEE
EMPLOYEE_NUMBER CHARACTER(6)
DEPARTAMENT_NUMBER CHARACTER(4)
SALARY NUMERIC(5)
Interno
STORED_EMP LENGTH=118
PREFIX TYPE=BYTE(6), OFFSET=0
EMP# TYPE=BYTE(6), OFFSET=6, INDEX=EMPX
DEPT# TYPE=BYTE(4), OFFSET=12
PAY TYPE=FULLWORD, OFFSET=16
1.7 Níveis de abstração
• é o nível do usuário individual. Em termos ANSI/SPARC, a visão de um 
determinado usuário é uma visão externa, ou seja, é o conteúdo do banco de 
dados como visto por determinado usuário.
Ex: um usuário do Depto. Pessoal
 usuários finais com distintos graus de sofisticação
• cada usuário tem um linguagem a sua disposição. Ex:
- Programador da aplicação: pode utilizar uma linguagem convencional como 
COBOL ou PL/I, ou uma linguagem do sistema em questão, PL/SQL, PGSQL, 
TRANSACT-SQL.
-Usuário final: uma linguagem de consulta como SQL ou uma linguagem 
baseada em formulários e menus.
• mapeamento externo/conceitual é a correspondência entre a visão externa e a 
conceitual. Como exemplo, podemos ter tipos de dados diferentes, denominações 
de campos e registros modificadas, campos conceituais múltiplos podem ser 
combinados em um único campo externo, etc. 
1.7.1 Nível externo
• a visão conceitual é a representação de todo o conteúdo de informações do 
banco de dados, de modo abstrato quando comparado à forma como os dados 
são fisicamente armazenados, e que também pode ser bem diferente da maneira 
como os dados são vistos por qualquer usuário em particular.
• a visão conceitual é a visão dos dados “como realmente são” e não como os 
usuários são forçados a vê-los.
• a visão conceitual é definida pelo “esquema conceitual”, o qual não possui 
quaisquer considerações sobre a estrutura de armazenamento ou a estratégia de 
acesso – somente definição das informações.
1.7.2 Nível conceitual
• a visão interna é descrita através do “esquema interno”, o qual tem a 
responsabilidade de definir:
- tipos de registros armazenados;
- os índices existentes;
- triggers necessários;
- seqüência física dos registros, etc.
1.7.3 Nível interno
• Resumindo, o SGBD é o software que manipula todos os acessos ao BD. 
Exemplo:
1. O usuário emite uma solicitação de acesso;
3. O DBMS intercepta a solicitação e a analisa;
5. O DBMS, por sua vez, inspeciona os esquemas externos para aquele 
usuário, o mapeamento externo/conceitual correspondente, o esquema 
conceitual, o mapeamento conceitual/interno ea definição da estrutura 
de armazenamento;
7. O DBMS executa as operações necessárias no banco de dados 
armazenado.
1.8 Sistema de Gerenciamento de Banco de Dados
1.8 Sistema de Gerenciamento de Banco de Dados
dados
metadados
Banco de dados
Gerenciador em tempo
de execução
solicitações
otimizadas
otimizador
solicitações
compiladas
Processador de
DML
Processador de
DDL
Processador de
linguagem de consulta
metadados
Fonte de esquemas
e mapeamentos
Solicitações de
DML Planejadas
Solicitações de
DML não-planejadas
Fonte de esquemas
e mapeamentos
1.9 Tipos de Sistemas de Banco de dados
• Sistemas de Lista Invertida: Ex: DATACOM/DB (Aplied Data Research), ADABAS(Software AG), etc.
• Sistemas Hierárquicos: Ex: IMS (1968, 1ª versão – depois virou IMS/VS – Information 
Management System/Virtual Storage) (IBM), System 2000 (Intel);
• Sistemas em Rede: Ex: IDMS (Cullinet), DMS 1100 (Sperry), TOTAL (Cincom Systems)
• Sistemas Relacionais: é aquele no qual os dados são percebidos pelos usuários como tabelas e as 
operações para recuperação dos dados geram novas tabelas, a partir das originais. Ex: Oracle, DB2 
(IBM), MySql (MySql AB), Firebird (Open Source), PostgreSQL (Open Source), SQL Server (Microsoft), 
Sybase Adaptative Server (Sybase), etc.
• Sistemas Orientados a Objetos: Os dados são armazenados como objetos. Ex: GemStone 
(GemStone Systems Inc.), Versant (Versant Object Technology), O2, Jasmine, etc.
• Sistemas Relacionais-Orientados a Objetos: tiram proveito de características dos sistemas 
relacionais e do sistema orientado a objeto. Ex: Oracle (a partir da versão 8i), PostgreSql.
1.11 Linguagens de Consulta
- SQL (Structured Query Language)
- Linguagens de Definição de Dados (DDL): são as definições utilizadas para a especificação do esquema 
de dados. O resultado da compilação de uma cláusula DDL é a criação(alteração) de um objeto no 
esquema, além do armazenamento deste resultado no de dados;
- Linguagens de Manipulação de Dados (DML): utilizada para inserir, atualizar, excluir e recuperar 
informações do BD. Existem tanto DML's procedurais quanto não procedurais
• Modelo relacional: utiliza-se de um conjunto de tabelas para representar tanto os dados como a 
relação entre eles.
C-152Novo Hamburgo99988877765Tiago
C-006Porto Alegre22211100098Fernanda
C-185Novo Hamburgo99988877765Tiago
C-888Sãp Leopoldo22233344456Pedro
C-105Novo Hamburgo10987654321Ana
C-001Porto Alegre12345678901Júlio
contacidadecpfnome
1850C-001
2300C-185
1500C-006
900C-888
700C-105
500C-152
saldoconta
• Modelo de rede: os dados são representados por um conjunto de registros (como em linguagens 
de programação) e a relação entre os dados é dada por links (ligações - ponteiros)
Porto Alegre12345678901Júlio
Novo Hamburgo10987654321Ana
Sãp Leopoldo22233344456Pedro
Novo Hamburgo99988877765Tiago
Porto Alegre22211100098Fernanda
500C-152
700C-105
900C-888
1500C-006
2300C-185
1850C-001
1.12 Modelos de SGBDs
• Modelo hierárquico: similar ao modelo de rede, a não ser pelo fato de os registros estarem 
organizados em árvores.
Porto Alegre12345678901Júlio
Novo Hamburgo10987654321Ana
Sãp Leopoldo22233344456Pedro
Novo Hamburgo99988877765Tiago
Porto Alegre22211100098Fernanda
500C-152
700C-105
900C-888
1500C-0062300C-185
1850C-001
1.13 Modelos de SGBDs
• Modelo dimensional: armazena os dados em arrays multidimensionais (cubos).
6PretoToyota
3AzulToyota
8PretoMercedes
1AzulMercedes
12PretoBMW
5AzulBMW
VENDASCORMODELO
BD RELACIONAL
6
8
12
Preto
3Toyota
1Mercedes
5BMW
AzulMODELO
MATRIZ BIDIMENSIONAL

Outros materiais