38
Carlos Alberto Seixas

Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Embed Size (px)

Citation preview

Page 1: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Carlos Alberto Seixas

Page 2: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

AgendaRevisão dos Conceitos Bancos de Dados e

SGBDComandos SQL - ImplementaçãoPráticas

Page 3: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Independência dos Dados

A independência dos dados pode ser definida como a imunidade das

aplicações à estrutura de armazenamento e à estratégia de

acesso às informações;

Page 4: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

ExemploNum SGBD é possível incluir novos

campos em uma tabela, dividir uma tabela em duas outras ou ainda unir duas tabelas em uma, criar e destruir índices sem que as aplicações sejam afetadas a não ser em alguns casos específicos;

Page 5: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Abstração de Informação

“Habilidade mental que permite aos seres humanos visualizarem os problemas do

mundo real com vários graus de detalhe, dependendo do contexto do

problema.”

Page 6: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Abstração dos DadosO grande objetivo dos SGBDs é fornecer

ao usuário uma visão simplificada dos dados, escondendo toda a complexidade do armazenamento de dados em níveis de abstração que simplificam o acesso às informações;

Page 7: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Níveis de abstraçãoA arquitetura de um banco de dados

divide-se em três níveis de abstração: Físico (ou interno), Conceitual Visões (ou externo).

Page 8: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Nível Físico ou internoEste é o nível mais baixo de abstração e

descreve como os dados estão realmente armazenados;

Neste nível, complexas estruturas de dados e programas trabalham para fornecer informações aos dois outros níveis de forma transparente.

Page 9: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Nível ConceitualDescreve quais dados estão de fato

armazenados no banco de dados e as relações que existem entre eles;

Os usuários deste nível não precisam se preocupar quanto à forma com que os dados são armazenados no nível físico;

O nível conceitual é usado por administradores de bancos de dados que especificam quais informações devem fazer parte do banco de dados e usuários avançados.

Page 10: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Nível de Visões ou ExternoÉ a forma como geralmente os usuários finais

vêem as informações contidas no banco de dados;O nível mais alto de abstração é composto de

inúmeras visões do mesmo banco de dados;Isto se deve ao fato de que muitos usuários não

estão interessados em todas as informações contidas no banco de dados;

Em vez disso, precisam apenas de uma parte destas informações;

O nível de visões é definido para simplificar a interação entre o usuário final e o banco de dados.

Page 11: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Níveis de Abstração

Nível de Visão1

Nível de Visão2

Nível de Visão 3

Nível Conceitual

Nível Físico

Page 12: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

As Três Abordagens ClássicasO usuário vê o banco de dados segundo

um modelo de visões;O modelo de visões e o modelo conceitual

são bastante semelhantes, as vezes idênticos;

Portanto os conceitos aplicados aqui servem tanto para o nível conceitual quanto para o de visões;Abordagem Relacional;Abordagem Hierárquica;Abordagem em Rede

Page 13: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

A Abordagem HierárquicaEsta seção e as seguintes são baseadas em um

banco de dados contendo as entidades: Filial, Departamento e Funcionário.

Na abordagem hierárquica, como o próprio nome já diz, os dados são organizados de acordo com níveis hierárquicos preestabelecidos;

Os primeiros bancos de dados estão baseados nesta abordagem. Segundo Date, “um banco de dados hierárquico, compõe-se de um conjunto ordenado de árvores – mais precisamente, de um conjunto ordenado de ocorrências múltiplas de um tipo único de árvore”.

Page 14: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

A Abordagem HierárquicaNa abordagem hierárquica, podemos ver o banco

de dados como um único arquivo organizado em níveis. O nível superior que contém a filial é chamado de raiz.

Qualquer acesso ao banco de dados deve ser feito a partir dele;

Em geral, a raiz pode ter qualquer quantidade de dependentes, e estes, qualquer quantidade de dependentes de nível mais baixo

Page 15: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

001 - Curitiba

001- Comercial 002- Administrativo

001- João 002- Antonio

Page 16: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

A Abordagem em RedeNo modelo em rede as informações são representadas por

uma coleção de registros e o relacionamento entre elas é formado através de ligações (link);

Extensão do modelo hierárquico;É uma relação membro-proprietário, na qual um membro

pode ter muitos proprietários.Em um bd estruturado como um modelo em rede há

freqüentemente mais de um caminho para acessar um determinado elemento de dado.

A principal diferença entre a abordagem hierárquica e a em rede é que um registro-filho tem exatamente um pai na abordagem hierárquica, enquanto na estrutura de rede um registro-filho pode ter qualquer número de pais.

Page 17: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

001- Londrina

002- Curitiba 002 - Administrativo

003- Industrial

001- Comercial 001 - João

002- Antonio

003- Pedro

004- Maria

Page 18: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

A Abordagem RelacionalUm banco de dados relacional consiste em

uma coleção de tabelas, cada uma designada por um nome único.

Tabelas Uma tabela é uma representação bi-

dimensional de dados composta de linhas e colunas;

Uma tabela de alunos de uma escola é apresentada a seguir.

Page 19: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Aluno

Num-Matricula Nome-Aluno Sexo-Aluno

1 Maria F

2 João M

3 Pedro M

4 Carla F

5 Sandra F

Regras:

1) Nomes de tabelas devem ser únicos no banco de dados;

2) De preferência a nomes curtos.

Page 20: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Atributos ou ColunasConsiderando a tabela Aluno;Ela tem três colunas Num_Matrícula,

Nome_Aluno e Sexo_Aluno;A cada uma destas colunas damos o nome de

atributo;Um nome de atributo deve ser único em uma

tabela e dizer exatamente o tipo de informação que ele representa.

Page 21: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Atributos ou Colunas Regras:1) Uma coluna (atributo) não segue um

ordenamento especifico;2) Nome de uma coluna deve expressar

exatamente o que armazena;3) Sempre que possível utilizar prefixos

padronizados, Cod-Dept, Nome-Funcionário, Qtde-Estoque

Page 22: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Linhas, Registros ou TuplasA tabela Aluno possui cinco registros;Cada registro representa um relacionamento entre um

conjunto de valores;A este relacionamento damos o nome de registro, linha ou

ainda Tupla;Cada linha da tabela é única e possui um atributo

identificador (Num_Matrícula);Este atributo identificador é chamado de chave primária.

Regras:1) Em uma tabela não devem existir linhas duplicadas;2) As linhas de uma tabela não seguem uma ordem especifica.

Page 23: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

DomínioA tabela Aluno possui três atributos;Para cada atributo existe um conjunto de

valores permitidos chamado domínio daquele atributo;

Para o atributo Num_Matrícula o domínio é o conjunto de números naturais;

Para o atributo Nome_Aluno o domínio é qualquer nome válido;

Enquanto que para Sexo_Aluno o domínio são os mnemônicos M ou F.

Page 24: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Chave PrimariaUma chave primária ou chave candidata é

uma coluna ou um grupo de colunas que assegura a unicidade das linhas dentro de uma tabela;

Uma chave primária que tenha mais de uma coluna é chamada de chave primária composta;

Chaves primárias são geralmente indicadas pela sigla PK (primary key) imediatamente abaixo do cabeçalho da coluna apropriada.

Veja os exemplos:

Page 25: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Cod-Empregado

Nome-Empregado Tel-Empregado

PK

Cod-Empregado é uma chave simples ou compacta

Cod-Empregado Cod-Dept Salario

PK PK

A combinação das colunas Cod-Empregado e Cod-Dept formam uma chave primaria composta.

Empregado

Salário

Page 26: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

RegrasValores de chave primária não podem ser

nulos (NN – Not Null):Um valor nulo é uma lacuna em uma coluna de uma tabela.Valores de chaves primarias não podem ser nulos porque

uma linha sem chave primaria não se distingue de outras linhas da mesma tabela;

Colunas com chaves primarias não podem ter valores duplicados (ND – No Duplicate):Um valor duplicado é um valor exatamente igual a outro de

uma ou mais linhas da mesma coluna na mesma tabela;Se a coluna possui valores duplicados esta não pode servir de

identificador da linha;

Page 27: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

RegrasChaves primarias não podem ser alteradas

(NC – No Change):O conteúdo de uma chave primaria não pode

sofrer alterações.

Page 28: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

RecomendaçõesSelecione chaves primarias absolutamente

disciplinadas e que permaneçam únicas;Selecione chaves primarias que não tenham

qualquer tendência a alterações;Se possível seleciona chaves primarias simples;De preferência a colunas numéricas para chaves

primarias;Selecione chaves primarias que sejam familiares;Se não houver nenhuma coluna com chave

primaria candidata, utilize chaves primarias atribuídas pelo sistema.

Page 29: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Chave EstrangeiraUma chave estrangeira é uma coluna ou

grupo de colunas que pode ou não ser chave primária da tabela em questão, mas, com certeza é chave primária de outra tabela;

Uma chave estrangeira formada por mais de uma coluna é chamada de chave estrangeira composta. Chaves estrangeiras são indicadas pela sigla FK (Foreign Key) abaixo do cabeçalho da coluna apropriada.

Page 30: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Cod-Dept Nome-Dept

PK

Cod-Empregado Nome-Empregado

Cod-dept

PK FK

Departamento

Empregado

Page 31: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

ClienteCod-Cliente Nome-Cliente

PK

Cod-Produto Nome-Produto Qtde-Estoque

PK

Produto

Cod-Cliente Cod-Produto Qtde-Pedida

PK+ PK+

FK FK

Venda

Page 32: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Restrições de IntegridadeUm dos principais objetivos de um SGBD é a

integridade dos dados.Um banco de dados íntrego é um banco que

reflete corretamente a realidade representada pelo banco de dados.

Para garantir a integridade de um banco de dados os SGBD oferecem o mecanismo de restrição de integridade.

Page 33: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Restrições de Integridade

Uma regra que deve ser obedecida em todos estados

válidos da base de dados (pode envolver uma ou mais

linhas de uma ou mais tabelas).

Page 34: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Restrições de IntegridadeNa abordagem relacional, costuma-se

classificar as restrições em quatro categorias:Integridade de domínio:

Especificam qual valor um atributo pode admitir; Ex.:

numero inteiro, valores alfanuméricos, data.... O atributo nome_cliente e nome_empregado podem

ter o mesmo domínio: o conjunto de todos os nomes de pessoas, campo alfanumérico tamanho 40.

Page 35: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Restrições de IntegridadeIntegridade de vazio:

Especificam se os atributos podem ou não serem vazios, isto é, se podem conter valores nulos.

Integridade de Chave: Valores da chave primaria (PK) devem ser únicos.

Integridade Referencial: Os valores que aparecem nos atributos em uma

chave estrangeira devem aparecer na chave primaria da tabela referenciada.

Page 36: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Restrições de IntegridadeTodas essas restrições são garantidas

automaticamente pelo SGBD.As restrições que não se encaixam em

nenhuma das categorias acima são chamadas de restrições semânticas, isto é, restrições criadas pelo programador.

Ex.: Um empregado do departamento “Finanças”

não pode ter a categoria funcional “Engenheiro”...

Um empregado não pode ter salário maior que seu superior imediato.

Page 37: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

Regras

Entidades têm existência própria e não são subordinadas a qualquer outra coisa;

Entidades podem ser concretas ou abstratas;

Informações sobre entidades, tais como o nome de uma pessoa, não são consideradas entidades, mas sim, atributos de entidades.

Page 38: Carlos Alberto Seixas. Agenda Revisão dos Conceitos Bancos de Dados e SGBD Comandos SQL - Implementação Práticas

AtributosAtributos nulos. É usado quando uma entidade

não possui valor para um determinado atributo. Ex.: se um empregado não possui dependentes, o

valor do atributo nome_dependente para esse dependente será nulo, ou que o valor do atributo é desconhecido.

Atributo derivado. O valor de um atributo pode ser derivado do valor de outros atributos. Ex. o valor do atributo tempo_de_casa pode ser

derivado do valor do atributo data_contratação e da data_corrente.