26
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

INSTITUTO DE EXATAS E TECNOLÓGICAS Curso de Ciência … · - Introdução a SGBD –: visão geral de um banco de dados, conceitos, o por quê, funcionamento de bancos de dados

  • Upload
    vuthuan

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

BANCO DE DADOSaula 01

- introdução -

professor: Juliano Varella de Carvalho

INSTITUTO DE EXATAS E TECNOLÓGICASCurso 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: [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.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 deaplicaçã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 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.

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º dapeça

nome dapeça

cor dapeça

peso dapeça

nº dapeça

nome dapeça

cor dapeça

peso dapeça

Duas ocorrênciasdo tipo de registroarmazenado “peça“

ocorrências de campos armazenados

Arquivo armazenado “peças”

outros arquivos armazenados

Campo armazenado: menor unidade de dadosarmazenados.

Registro armazenado: coleção de campos armazenados relacionados entre si.

Arquivo armazenado:coleção de todas asOcorrências de um único tipo de registroarmazenado.

• 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.

EsquemaExterno 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

EsquemaConceitual

Visão conceitual

Mapeamento Bexterno/conceitual

Mapeamento Aexterno/conceitual

Mapeamentoconceitual/interno

Banco de dados armazenado (visão interna)

Definição de estruturado armazenamento(esquema interno)

Sistema deGerenciamentode banco de

Dados (DBMS)DBA

1.7 Níveis de abstração

• exemplo dos três níveis:

banco de dados de funcionário

ExternoDCL 1 EMPP, 01 EMPC 2 EMP# CHAR(6), 02 EMPNO PIC X(6) 2 SAL FIXED BIN(31); 02 DEPTNO PIC X(4)

ConceitualEMPLOYEE

EMPLOYEE_NUMBER CHARACTER(6)DEPARTAMENT_NUMBER CHARACTER(4)SALARY NUMERIC(5)

InternoSTORED_EMP LENGTH=118

PREFIX TYPE=BYTE(6), OFFSET=0EMP# TYPE=BYTE(6), OFFSET=6, INDEX=EMPXDEPT# TYPE=BYTE(4), OFFSET=12PAY 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 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

1.8 Sistema de Gerenciamento de Banco de Dados

dados

metadados

Banco de dados

Gerenciador em tempode execução

solicitaçõesotimizadas

otimizador

solicitaçõescompiladas

Processador deDML

Processador deDDL

Processador delinguagem de consulta

metadados

Fonte de esquemase mapeamentos

Solicitações deDML Planejadas

Solicitações deDML não-planejadas

Fonte de esquemase 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