BANCO DE DADOS aula 01 - introdução -

Propaganda
INSTITUTO DE EXATAS E TECNOLÓGICAS
Curso de Ciência da Computação
BANCO DE DADOS
aula 01
- introdução -
professor: Juliano Varella de Carvalho
1.1 Apresentaçã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: [email protected]
Todos os emails devem ser enviados com o assunto [BANCO-DADOS]
• Apresentação dos alunos (nome – profissão – experiência com BD)
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.”
Banco de dados
- dados
- hardware
- software
- usuários
usuários finais
Programas de
aplicação
Gerenciador do sistema de banco de dados
usuários finais
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
1.8 Administrador de Banco de Dados
• 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.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 atualizadas estã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.
Fig. 1: primeira 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.
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).
Fig. 2: segunda geração
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
1.3 Histórico
• 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.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
Campo armazenado: menor unidade de dados
armazenados.
Banco de dados armazenado
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.
outros arquivos armazenados
Arquivo armazenado “peças”
Duas ocorrências
do tipo de registro
armazenado “peça“
nº da
peça
nome da
peça
cor da
peça
peso da
peça
P1
Porca
Vermelho
12
ocorrências de campos armazenados
P2
Pino
Verde
17
nº da
peça
nome da
peça
cor da
peça
peso da
peça
1.7 Níveis de abstração
• 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
Usuário A1
Usuário A2
Usuário B1
Usuário B2 Usuário B3
físico.
Linguagem
X
Linguagem
Y
Esquema
Visão externa A
Externo A
Linguagem
Z
Linguagem
Z
Esquema
Visão externa B
Externo B
Mapeamento B
externo/conceitual
Mapeamento A
externo/conceitual
Esquema
Conceitual
DBA
Linguagem
X
Visão conceitual
Mapeamento
conceitual/interno
Definição de estrutura
do armazenamento
(esquema interno)
Banco de dados armazenado (visão interna)
Sistema de
Gerenciamento
de banco de
Dados (DBMS)
1.7 Níveis de abstração
• exemplo dos três níveis:
 banco de dados de funcionário
Externo
DCL 1 EMPP,
2 EMP# CHAR(6),
2 SAL FIXED BIN(31);
01 EMPC
02 EMPNO PIC X(6)
02 DEPTNO PIC X(4)
Conceitual
EMPLOYEE
EMPLOYEE_NUMBER
DEPARTAMENT_NUMBER
SALARY
CHARACTER(6)
CHARACTER(4)
NUMERIC(5)
Interno
STORED_EMP
PREFIX
EMP#
DEPT#
PAY
LENGTH=118
TYPE=BYTE(6), OFFSET=0
TYPE=BYTE(6), OFFSET=6, INDEX=EMPX
TYPE=BYTE(4), OFFSET=12
TYPE=FULLWORD, OFFSET=16
1.7.1 Nível externo
• é 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.2 Nível conceitual
• 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.3 Nível interno
• 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.8 Sistema de Gerenciamento de Banco de Dados
•
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 e a 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
Fonte de esquemas
e mapeamentos
Processador de
DDL
Solicitações de
DML Planejadas
Processador de
DML
Solicitações de
DML não-planejadas
Processador de
linguagem de consulta
solicitações
compiladas
otimizador
solicitações
otimizadas
Fonte de esquemas
e mapeamentos
Gerenciador em tempo
de execução
Banco de dados
dados
metadados
metadados
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
1.12 Modelos de SGBDs
• Modelo relacional: utiliza-se de um conjunto de tabelas para representar tanto os dados como a
relação entre eles.
nome
cpf
cidade
conta
conta
saldo
Júlio
12345678901
Porto Alegre
C-001
C-152
500
Ana
10987654321
Novo Hamburgo
C-105
C-105
700
Pedro
22233344456
Sãp Leopoldo
C-888
C-888
900
Tiago
99988877765
Novo Hamburgo
C-185
C-006
1500
Fernanda
22211100098
Porto Alegre
C-006
C-185
2300
Tiago
99988877765
Novo Hamburgo
C-152
C-001
1850
• 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)
Júlio
12345678901
Porto Alegre
C-152
500
Ana
10987654321
Novo Hamburgo
C-105
700
Pedro
22233344456
Sãp Leopoldo
C-888
900
Tiago
99988877765
Novo Hamburgo
C-006
1500
Fernanda
22211100098
Porto Alegre
C-185
2300
C-001
1850
1.13 Modelos de SGBDs
• Modelo hierárquico: similar ao modelo de rede, a não ser pelo fato de os registros estarem
organizados em árvores.
Júlio
12345678901
Porto Alegre
Ana
10987654321
Novo Hamburgo
Pedro
C-001
22233344456
Sãp Leopoldo
1850
Tiago
C-105
99988877765
Novo Hamburgo
700
Fernanda
C-888
22211100098
900
C-152
500
C-185
2300
• Modelo dimensional: armazena os dados em arrays multidimensionais (cubos).
BD RELACIONAL
MODELO
MATRIZ BIDIMENSIONAL
COR
VENDAS
MODELO
BMW
Azul
5
BMW
Preto
12
Mercedes
Azul
1
Mercedes
Preto
8
Toyota
Azul
3
Toyota
Preto
6
Porto Alegre
Azul
Preto
BMW
5
12
Mercedes
1
8
Toyota
3
6
C-006
1500
Download