introdução ao banco de dados - prof. daniel brandão

70
AVEC Análise e Desenvolvimento de Sistemas Professor Daniel Brandão Disciplina: Banco de dados II 1

Upload: daniel-brandao

Post on 09-Dec-2014

3.744 views

Category:

Technology


2 download

DESCRIPTION

Slides revisados sobre introdução ao estudo de Banco de dados, feito especificamente para atender a grade do curso de Análise e Desenvolvimento de Sistemas da faculdade AVEC.

TRANSCRIPT

Page 1: Introdução ao Banco de dados - Prof. Daniel Brandão

AVECAnálise e Desenvolvimento de Sistemas

Professor Daniel BrandãoDisciplina: Banco de dados II

1

Page 2: Introdução ao Banco de dados - Prof. Daniel Brandão

Quem sou eu: Daniel Brandão•Graduado em Sistemas para Internet (FATESM – 2008)•Especialização em Tecnologias Para Aplicações Web (UNOPAR 2013)•Desenvolvedor web/Webdesigner (desde 2004)•Programador Web (desde 2006)•Professor AVEC e Instrutor SENAI (desde 2011)

•Como me achar:•BLOG/Siste: www.danielbrandao.com.br

•E-mail: [email protected]•Twitter: Twitter.com/Dan85br 2

Page 3: Introdução ao Banco de dados - Prof. Daniel Brandão

Ementa• Linguagem SQL Avançada. Visões, Procedimentos

Armazenados, Cursores, Transações, Gatilhos e Funções de banco de dados. Conceitos de administração. Projeto e desenvolvimento para banco de dados.

• Bibliografia Básica:• SILBERSCHATZ, Abraham et al.; Arquitetura de Sistemas de

Bancos de Dados. São Paulo: Makron Books, 1997.• DATE, C. J. ; Banco de dados. Rio de Janeiro: Campus, 1990.• Complementar:• MACHADO, Felipe Nery R. Banco de dados – Projeto e

implementação. Editora Érica.• FERRARI , Fabrício Augusto; Crie banco de dados em MySQL:

São Paulo: Digerati Books, 2007.3

Page 4: Introdução ao Banco de dados - Prof. Daniel Brandão

Sobre o que falaremos

A. Introdução e conceitoB. Modelo relacionalC. Conceitos GeraisD. Dicionário de dadosE. RelaçõesF. DomíniosG. Esquemas e InstânciasH. ChavesI. IntegridadesJ. Restrições

4

Page 5: Introdução ao Banco de dados - Prof. Daniel Brandão

INTRODUÇÃO 5

Page 6: Introdução ao Banco de dados - Prof. Daniel Brandão

O que é um banco de dados?• Podemos entender por banco de dados qualquer sistema que

reúna e mantenha organizada uma série de informações relacionadas a um determinado assunto em uma determinada ordem.

• A lista telefônica é um exemplo , nela percebemos que todos os dados referentes a uma pessoa estão na mesma linha , a isso chamamos registros..

• O tipo ou categoria da informação (nome, telefone, etc.) sobre uma pessoa está separada em colunas, as quais chamamos campos..

• Um Sistema Gerenciador de banco de dados relacionais(SGBDR) é usado para armazenar as informações de uma forma que permita às pessoas examiná-las de diversas maneiras.

6

Page 7: Introdução ao Banco de dados - Prof. Daniel Brandão

DADOS X INFORMAÇÕES

• Muitos consideram dados e informações como palavras sinônimas, mas na verdade não são. Para entender o que é um banco de dados é muito importante saber a diferença entre essas duas palavras.

• DADOS: são fatos brutos, em sua forma primária. E muitas vezes os dados podem não fazer sentido sozinhos.

• INFORMAÇÕES: consiste no agrupamento de dados de forma organizada para fazer sentido, gerar conhecimento.

7

Page 8: Introdução ao Banco de dados - Prof. Daniel Brandão

• Por exemplo: • O número 2001 isoladamente faz algum sentido? Não! Isso é

um dado. E se disséssemos: • “Ano do atentado terrorista às torres gêmeas: 2001″?

• Agora faz sentido! Isso é uma informação. Portanto, um banco de dados é uma estrutura de dados organizada que permite a extração de informações.

8

Page 9: Introdução ao Banco de dados - Prof. Daniel Brandão

METADADOS

• Todo dado relativo a outro dado é chamado de metadados. No exemplo anterior do ano 2001 o dado “Ano do atendado terrorista às torres gêmeas” é um metadado, pois ele é um dado sobre o dado “2001″. Um outro exemplo mais comum em banco de dados: o campo telefone da tabela cliente tem, entre outros, os seguinte metadados: nome (telefone), tipo (texto), tamanho (30 caracteres), obrigatoriedade (não), etc.

• Um banco de dados é formado por dado e metadados. Sem os metadados não seria possível organizar e extrair informações de um banco de dados.

9

Page 10: Introdução ao Banco de dados - Prof. Daniel Brandão

MODELOS DE BANCO DE DADOS

Hierárquico

Rede

Relacional

10

Page 11: Introdução ao Banco de dados - Prof. Daniel Brandão

Modelo Hierárquico

HIERÁRQUICO: é um tipo de sistema de gerenciamento de banco de dados que conecta registos numa estrutura de dados em árvore através de ligações de tal modo que cada tipo de registo tenha apenas um possuidor. A base de dados se baseia em um Modelo de Entidades e Relacionamentos: cada registro é uma coleção de atributos (campos), cada um dos quais contendo somente uma informação; uma ligação é a associação entre dois registros.

11

Page 12: Introdução ao Banco de dados - Prof. Daniel Brandão

Modelo de rede

O modelo em redes surgiu como uma extensão ao modelo hierárquico, eliminando o conceito de hierarquia e permitindo que um mesmo registro estivesse envolvido em várias associações. Tanto o Modelo Hierárquico como o de Redes são orientados a registros, isto é, qualquer acesso à base de dados – inserção, consulta, alteração ou remoção – é feito em um registro de cada vez.Como já foi mencionado, a organização do Modelo em Redes é semelhante a do Modelo Hierárquico, mas com a diferença de que cada registro filho pode ser ligado a mais de um registro pai, criando conexões bastante complexas e são bastante utilizados em sistemas para computadores de grande porte.

12

Page 13: Introdução ao Banco de dados - Prof. Daniel Brandão

O MODELO RELACIONAL 13

Page 14: Introdução ao Banco de dados - Prof. Daniel Brandão

Definição• Banco de dados Modelo Relacional é um conceito abstrato

que define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um banco de dados.

• O termo é aplicado aos próprios dados, quando organizados dessa forma, ou a um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) – do inglês Relational database management system (RDBMS) – um programa de computador que implementa a abstração.

14

Page 15: Introdução ao Banco de dados - Prof. Daniel Brandão

Breve histórico• 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 planos (do inglês flat file), bancos de dados hierárquicos e em rede.

15

Page 16: Introdução ao Banco de dados - Prof. Daniel Brandão

Modelo Relacional - Características• Organização dos dados

• conceitos do modelo: atributo, relação, chave, ...• Integridade

• restrições básicas para dados e relacionamentos• Manipulação

• linguagens formais (álgebra e cálculo relacional)• SQL (comercial)

16

Page 17: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Atributo

• Um item de dado do Banco de Dados (BD)• Possui um nome e um domínio• Exemplos

• nome: varchar(20) • matrícula: integer • dataNasc: date DataNascMatrículaNome

Page 18: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Tupla• Um conjunto de pares (atributo, valor)• Valor de um atributo

• Definido no momento da criação de uma tupla deve ser: • compatível com o domínio ou NULL • Atômico (indivisível)

18

Page 19: Introdução ao Banco de dados - Prof. Daniel Brandão

Exemplo: Tupla

20/02/198501427Maria03/07/197602467Vânia12/11/198001035Renata

DataNascMatrículaNome

Tupla 1

Atributo: Nome Valor: Renata

Page 20: Introdução ao Banco de dados - Prof. Daniel Brandão

Exemplo: Tupla

20/02/198501427Maria03/07/197602467Vânia12/11/198001035Renata

DataNascCPFNomeTuplas

Page 21: Introdução ao Banco de dados - Prof. Daniel Brandão

Dicionário de Dados!

Dentro do contexto de SGBD, um dicionário de dados é um

grupo de tabelas, habilitadas apenas para leitura ou consulta, ou

seja, é uma base de dados.

Page 22: Introdução ao Banco de dados - Prof. Daniel Brandão

Dicionário de Dados! Exemplos:

• Definição precisa sobre elementos de dados.

• Perfis de usuários, papéis e privilégios

• Descrição de objetos

• Restrições de integridade

• Pequeno trecho de programa de computador, armazenado em um SGBD, que pode ser chamado freqüentemente por um programa principal.

• Índices

Page 23: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Relação• Composto por um cabeçalho e um corpo• Cabeçalho

• número fixo de atributos (grau da relação)• atributos não-ambíguos

• Corpo• número variável de tuplas (cardinalidade da relação)• ordem não é relevante

23

Page 24: Introdução ao Banco de dados - Prof. Daniel Brandão

Exemplo Relação

20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467Vânia

Rua das Flores, 210Endereço

12/11/198001035RenataDataNascCPFNome

Aluno

Cabeçalho

Page 25: Introdução ao Banco de dados - Prof. Daniel Brandão

Exemplo Relação

20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467Vânia

Rua das Flores, 210Endereço

12/11/198001035RenataDataNascCPFNome

Aluno

Corpo

Page 26: Introdução ao Banco de dados - Prof. Daniel Brandão

Revisando...

Page 27: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Relação

20/02/1985São Diego 310/34

Maria

03/07/1976Capote Valente, 35

Vânia

Rua das Flores, 210

Endereço

12/11/1980Renata

DataNascNome

S1 S2 S3

TUPLAS

Page 28: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Atributos

Definição: dada uma relação R, define-se como seus atributos os nomes das funções que mapeiam os valores de cada um dos elementos de cada tupla nos respectivos conjuntos S1, S2 , ...., S3 ..

20/02/1985São Diego 310/34

Maria

03/07/1976Capote Valente, 35

Vânia

Rua das Flores, 210

12/11/1980Renata

S1 S2 S3

DataNascEndereçoNome DataNascEndereçoNome

Relação

ATRIBUTOS

Page 29: Introdução ao Banco de dados - Prof. Daniel Brandão

Conceitos Gerais: Domínios

Definição: Dada uma relação R, o domínio do atributo Aj, é o conjunto Sj no qual o atributo assume valores

20/02/1985São Diego 310/34

Maria

03/07/1976Capote Valente, 35

Vânia

Rua das Flores, 210

12/11/1980Renata

S1 S2 S3

DataNascEndereçoNome DataNascEndereçoNome

Relação R

ATRIBUTOS

Domínio

Page 30: Introdução ao Banco de dados - Prof. Daniel Brandão

Relembrando...• Relação é uma Tabela• Atributo é um Campo (coluna da tabela)• Tupla é uma linha da tabela • Domínio: tipo de dado, formato de um atributo

30

Page 31: Introdução ao Banco de dados - Prof. Daniel Brandão

Esquema e Instância• Esquema

• Aluno (nome,matrícula, endereço, DataNasc, Curso)• Curso (codigo, descrição)

• Instância• (Daniela, 12345, São Diego, 310, 28/06, 1)

31

Page 32: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave

• Conjunto de um os mais atributos de uma relação

• Chave Primária (primary key) – PK

• Chave Estrangeira (foreign key) - FK

32

Page 33: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária• Primary key (PK)

• atributo(s) cujo (conjunto de) valor(es) identifica(m) unicamente uma tupla em uma relação

• Unicidade de valores na coluna que compõe a chave

33

Page 34: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária (PK)

20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467Vânia

Rua das Flores, 210Endereço

12/11/198001035RenataDataNascCPFNome

Aluno

Qual(is) atributo(s) representam unicamente uma tupla?

34

Page 35: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária (PK)

20/02/1985São Diego 310/3401427Maria03/07/1976Capote Valente, 3502467Vânia

Rua das Flores, 210Endereço

12/11/198001035RenataDataNascCPFNome

Aluno

Qual(is) atributo(s) representam unicamente uma tupla?

CPF 35

Page 36: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária (PK)

20/02/1985São Diego 310/34347685784432Maria03/07/1976Capote Valente, 35693529876987Vânia

Rua das Flores, 210Endereço

12/11/1980701034263890RenataDataNascCPFNome

Aluno

Aluno(CPF, Nome, Endereço, DataNasc)

Page 37: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária (PK) – CompostaAlocação (Cod_Projeto, Cod_Func, DataIni, Tempo)

Um funcionário pode estar em mais de um projeto

37

Page 38: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Primária (PK)

Alocação (Cod_Projeto, Cod_Func, DataIni, Tempo)

Chave primária composta

38

Page 39: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Candidata• Possui as mesmas propriedades que a chave primária

347685784432693529876987701034263890

CPF

20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome

Aluno

39

Page 40: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Candidata• Possui as mesmas propriedades que a chave primária

347685784432693529876987701034263890

CPF

20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome

Aluno

Chaves candidatas40

Page 41: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Candidata• Qual escolher para Chave Primária?• Escolhe-se para chave primária aquela com o atributo único ou

menor número de caracteres

347685784432693529876987701034263890

CPF

20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome

41

Page 42: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Candidata

347685784432693529876987701034263890

CPF

20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome

Chave Primária

42

Page 43: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Alternativa

347685784432693529876987701034263890

CPF

20/02/198501427Maria03/07/197602467Vânia12/11/198001035RenataDataNascMatrículaNome

Chave Primária

Chave alternativa

Chave alternativa: chave candidata que não é primária43

Page 44: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Estrangeira• Foreign Key (FK)• Atributo(s) de uma relação, cujos valores devem

obrigatoriamente aparecer na chave primária de uma relação (da mesma ou de outra)

• Implementa o relacionamento em um BD relacional

44

Page 45: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Estrangeira (FK)

12

1

Curso

347685784432693529876987

701034263890

CPF

01427Maria02467Vânia

01035Renata

MatrículaNome

Page 46: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Estrangeira (FK)

121

Curso

347685784432693529876987701034263890

CPF

01427Maria02467Vânia01035Renata

MatrículaNome

Ciências Jurídicas e Sociais

Administração de Empresas

Ciência da Computação

Descrição

3

2

1

Codigo

Page 47: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Estrangeira (FK)

Aluno(CPF, Nome, Endereço, DataNasc, #Curso)

Curso (Codigo, Descrição)

47

Page 48: Introdução ao Banco de dados - Prof. Daniel Brandão

Chave Estrangeira (FK)

Funcionário (CodFunc, Nome, Endereço, #Cod_Chefe)

2Carlos Gomes, 50Carla4

1

3

4Cod_Chefe

Anita Garibaldi, 12

Oscar Freire, 10

Av. Joaquim 2Endereço

Pedro3

João2

Maria1NomeCodFu

n

Page 49: Introdução ao Banco de dados - Prof. Daniel Brandão

Revisando...• Chave Primária (PK)• Chave candidata• Chave alternativa• Chave Estrangeira (FK)

49

Page 50: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Integridade

• É uma regra que deve ser obedecida em todos os estados válidos da base de dados.

• Garantem que os dados refletem corretamente a realidade modelada. • Domínio, Chave Primária, Valores Vazios

• Integridade de Entidade

• Integridade Referencial

• Semântica

50

Page 51: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Integridade

• Domínio: conjunto de valores que um atributo pode

assumir

Exemplo: Nome: varchar (20)- Alessandra Vogel

Oliveira

viola a regra

Vazio: define se os atributos podem ou não ser vazios51

Page 52: Introdução ao Banco de dados - Prof. Daniel Brandão

Integridade de Entidade

• Garantia de acesso a todos os dados

sem ambigüidade

• Atributos pertencentes a chave-

primária de uma relação não podem

ter valor nulo

• A chave primária representa uma

entidade na base de dados

Carla4

Pedro3João2Maria1NomeCodFu

n

Page 53: Introdução ao Banco de dados - Prof. Daniel Brandão

Integridade Referencial • Chave estrangeira (FK)

• Garantia de

relacionamentos válidos

• Os valores que aparecem na

FK devem aparecer na PK da

relação referenciada

121

Curso

347685784432693529876987701034263890

CPF

01427Maria02467Vânia01035Renata

MatrículaNome

121

Curso

347685784432693529876987701034263890

CPF

01427Maria02467Vânia01035Renata

MatrículaNome

Ciências Jurídicas e Sociais

Administração de Empresas

Ciência da Computação

Descrição

3

2

1

Curso

Ciências Jurídicas e Sociais

Administração de Empresas

Ciência da Computação

Descrição

3

2

1

Curso

Page 54: Introdução ao Banco de dados - Prof. Daniel Brandão

Integridade Semântica

• Especificada através de regras sobre o esquema do banco de dados

• Exemplos: • O salário de um empregado deve ser menor ou igual ao do

seu supervisor• O número de horas semanais de um empregado em um

projeto não pode ser maior do que 50

54

Page 55: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:

55

Page 56: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:

• Integridade de Domínio: valor não é do domínio

56

Page 57: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:

• Integridade de Domínio• Integridade de Chave: valor já existe

57

Page 58: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:

• Integridade de Domínio• Integridade de Chave• Integridade de Entidade: chave primária é nula

58

Page 59: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Inserção: insere tuplas em uma relação• Pode violar 4 restrições de integridade:

• Integridade de Domínio• Integridade de Chave (ex.: chave duplicada)• Integridade de Entidade• Integridade Referencial: valor da FK refere-se a uma tupla que não

existe na relação referenciada

59

Page 60: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Exclusão: exclui tuplas de uma relação• Pode violar :

60

Page 61: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Exclusão: exclui tuplas de uma relação• Pode violar :

Integridade referencial: se a tupla que está sendo excluída está referenciada por uma FK de outra tupla

61

Page 62: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização

• Exclusão:

Ciências Jurídicas e Sociais

Administração de Empresas

Ciência da Computação

Descrição

3

2

1

Curso

1

2

1

Curso

347685784432

693529876987

701034263890

CPF

01427Maria

02467Vânia

01035Renata

MatrículaNome

Page 63: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Procedimento a ser adotado:

• Rejeitar a operação• Excluir em cascata• Mudar os valores dos atributos referenciados

63

Page 64: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes

• Pode violar:

64

Page 65: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes

• Pode violar: • Restrição de Domínio para atributos que não são chave

65

Page 66: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes

• Pode violar: • Restrição de Domínio para atributos que não são chave• Chave primária e entidade

66

Page 67: Introdução ao Banco de dados - Prof. Daniel Brandão

Restrições de Atualização• Atualização : altera os valores de atributos nas tuplas existentes

• Pode violar: • Restrição de Domínio para atributos que não são chave• Chave primária e entidade• Referencial

67

Page 68: Introdução ao Banco de dados - Prof. Daniel Brandão

68

Page 69: Introdução ao Banco de dados - Prof. Daniel Brandão

Exercício: Considere o seguinte esquema relacional:

Categoria(CodCategoria, Descrição)Cliente (CodCli, Nome, Endereco, CPF, CodCategoria)Funcionário (CodFunc, Nome, CT, CPF, End, Fone)Fornecedor (CodFornec, Nome, Cidade)Produto (CodProd, CodFornec, Nome, Peso, Valor)

69

1) Identificar as chaves primárias e chaves estrangeiras

2) Identificar o que é cada ítem das tabelas a seguir:

Page 70: Introdução ao Banco de dados - Prof. Daniel Brandão

• Sistemas de Banco de Dados, Elmasri-Navathe

- 4a. Edição: Capítulo 5

• Php e Mysql - Desenvolvimento Web - 3ª Edição. Autor: Welling, Luke; Thomson, Laura. Editora: Campus.

Leitura Complementar

71

Créditos:

Material extraído de pesquisa em Livros e Slides do Slideshare e de blogs especializados na internet